Mysql+PHP оптимальные конструкции

12
Segey
На сайте с 23.08.2005
Offline
404
3484

Возник подобного рода вопрос. Вот к примеру есть 33 буквы русского алфавита. Они постоянно используются в скрипте. Букв всего 33 и можно сделать БД, куда их сложить, можно сделать файл с массивом, где будут эти буквы, а может и файл txt который можно обрабатывать как массив. Вот только что лучше?

Лучше это для меня удобнее для php и mysql т.е. чтобы они работали быстрее. Естественно и варианты, когда можно отступить от правил тоже бывают, но это не так часто. Вобщем хочется узнать, сколько занимает по времени у php мнтерпритатора та или иная операция. Что ему проще - файл обработать, как массив или маленькую базу считать? Кстати учитывая, что соединение открыто т.е. на это ресурсы тратить не надо.

Только начал по сути дела учить php+mysql, всего месяца полтора. Но хочется сразу пойти правильным путем и приучить себя к хорошему и продуманному коду :) Знаю, что сдесь много хороших програмистов, хочется послушать, что они скажут :)

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
GB
На сайте с 22.04.2006
Offline
2
#1

В идеале было бы хранить данные в базе. Однако, чтобы каждый раз не дергать БД, да и вообще снять нагрузку с сервера, хорошо бы кэшировать на сервере готовый HTML код на кокое-то время. Все это ИМХО.

Segey
На сайте с 23.08.2005
Offline
404
#2

Go_blin,

Однако, чтобы каждый раз не дергать БД, да и вообще снять нагрузку с сервера, хорошо бы кэшировать на сервере готовый HTML код на кокое-то время. Все это ИМХО.

А как это организовать, просто как ситуация к примеру обстоит:

- база данных со всем что есть на сайте.

- к ней идут запросы разной информации т.е. со всего сайта, то оттуда, то оттуда и причем всякой разной, так получается весь сайт надо кэшировать, причем на все его время существования...

В идеале было бы хранить данные в базе.

А почему так?

GB
На сайте с 22.04.2006
Offline
2
#3
Segey:
Go_blin,


А как это организовать, просто как ситуация к примеру обстоит:
- база данных со всем что есть на сайте.
- к ней идут запросы разной информации т.е. со всего сайта, то оттуда, то оттуда и причем всякой разной, так получается весь сайт надо кэшировать, причем на все его время существования...


А почему так?

Зачем на все время существования? А если допустим это новости на сайте, которые появляются раз в неделю. Тогда и кэшировать можно на неделю (не всю страницу, а только контент с новостями). Как органирозовать почитайте здесь http://php.russofile.ru/?lang=ru&section=translate/unsort/optimizing/ в данный момент страница не загружается, но уверен, скоро все будет ок. По поводу последнего вопроса - когда речь идет о большом проекте, проще им управлять с помощью БД. Опять же это только ИМХО из опыта.

Segey
На сайте с 23.08.2005
Offline
404
#4
Go_blin:
Опять же это только ИМХО из опыта.

Согласен, что проще управлять через БД, но если у меня очень много обращений к БД к маленькой тацлице, как в примере, которая по сути массив (т.к. небольшой список). Собственно вопрос, стоит ли заморачиваться тут и такие моменты делать файлами или нагрузка на БД при этом будет не такая большая?

dkameleon
На сайте с 09.12.2005
Offline
386
#5

Segey,

Конкретно для набора букв, которые вряд ли изменятся в обозримом будущем, эффективнее всего будет или массив или сразу готовая закешированая страничка :)

Дизайн интерьера (http://balabukha.com/)
Segey
На сайте с 23.08.2005
Offline
404
#6

dkameleon,

А можно как-то измерить? Т.е. создать условия, что 100.000 пользователей обращаются к файлу с запросом к базе и им выдается результат, а в итоге написано, что все эти операции заняли столько-то времени?

Как точно расчитать, сколько тот или иной скрипт выполняется, если все пробовать на моем железе... ?

nickspring
На сайте с 29.03.2006
Offline
228
#7

Юзайте серверное и/или клиентское кеширование.

В первом случае, нужно выдачу сгенерированной страницы кешировать на сервере, задавая какой-то срок жизни этого кеша.

Во втором случае, нужно в скрипте корректно обрабатывать запрос браузера HTTP_IF_MODIFIED_SINCE.

[Удален]
#8

Segey, можно конкуретизировать вопрос?

Глядишь пригодится Noga :)

dkameleon
На сайте с 09.12.2005
Offline
386
#9

Segey,

ПРосто прогони в цикле, скажем, миллион раз :)

и замерь время на формирование из массива, запросы к базе или загрузку кеша :)

MVH
На сайте с 03.05.2005
Offline
64
MVH
#10
Segey:
Возник подобного рода вопрос. Вот к примеру есть 33 буквы русского алфавита. Они постоянно используются в скрипте. Букв всего 33 и можно сделать БД, куда их сложить, можно сделать файл с массивом, где будут эти буквы, а может и файл txt который можно обрабатывать как массив. Вот только что лучше?

Если эти 33 буквы будут часто изменяться, то пихайте их в файл или в БД. Если вообще не изменяется или очень редко, и в основном имеет системное значение (т.е. обычными пользователями изменяться не будет - только тем, кто скрипт администрирует) - то запихните значение в константу (или в переменную) PHP в каком-нибудь конфигурационном файле скрипта. В файл или в БД - зависит от того, что Вы используете при написания скрипта. Если скрипт всюду использует БД - то и 33 буквы в БД пихайте, если скрипт хранит данные в файлах, то соответственно и 33 буквы в файлых храните тоже. Здесь особого разнообразия не нужно. На счёт скорости не заморачивайтесь. Это экономия на спичках. Разьве, что Вы будете писать скрипт, который который должен очень высокую нагрузку выдерживать... Но если уж хотите, то замерьте скорость работы скрита с данными в mysql и с данными в файлах. И всё будет ясно.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий