|
|
|
| Здравствуйте!
Наверное топик не по разделу, но всё же.. Заранее извиняюсь.
Вопрос вот в чём:
Могут ли быть на хосте ограничение на кол-во запросов к базе в единицу времени? Т.е. стоит ли заботится об уменьшении кол-ва запросов в скрипте... Просто много маленьких иногда работают быстрее одного "большого" запроса) | |
|
|
|
|
|
|
|
для: zxcAq
(23.07.2007 в 00:40)
| | Разумный компромисс определяется индивидуально в каждом конкретном случае | |
|
|
|
|
|
|
|
для: zxcAq
(23.07.2007 в 00:40)
| | >Могут ли быть на хосте ограничение на кол-во запросов к базе в единицу времени?
Да, такое ограничение возможно, однако редко используется (например, если есть подозрение, что SQL-запрос выполняется в бесконечном цикле)... Специально стремиться к снижению количества запросов не нужно - сложно будет сопровождать проект. Хостеру важнее, чтобы ваши запросы выполнялись как можно быстрее, количество их не так принципиально - один многотабличный запрос хуже нескольких однотабличных.
PS Как правило, оптимизацию начинают проводить когда начинают наблюдаться задержки в генерации страниц или в обновление данных. | |
|
|
|
|
|
|
|
для: cheops
(23.07.2007 в 11:14)
| | Ну к примеру у меня в форуме выводится 50 топиков на страницу... Чтобы вывести каждый топик, и всю нужную инфу о нём делается 3 запроса... Т.е. 3 умножаем на 50 и получаем 150 запросов) Это же не нормально) А большие запросы выполняются долго... Вот о чём я) Нормально ли 150 запросов?) | |
|
|
|
|
|
|
|
для: zxcAq
(24.07.2007 в 00:09)
| | Почему Вы считаете, что большие запросы выполняются долго?
Нормально они выполняются. Если БД спроектирована без ляпов, запрос написан аккуратно, индексы расставлены по ключам, то очень даже быстро.
В ситуации вывода пятидесяти топиков могут быть два решения.
Глобальное - вывести всё одним-двумя запросами.
И компромисное - вывести тремя - пятью запросами. Пятидесяти запросов быть не может. | |
|
|
|
|
|
|
|
для: zxcAq
(24.07.2007 в 00:09)
| | Если запросы выполняются доли секунды - абсолютно нормально. Ненормально, когда один SQL-запрос выполняется сотни секунд - дело в том, что в UNIX-реализации, под каждый запрос выделяется один процесс. Если он занят - все остальные запросы обрабатываются меньшим количеством процессов. Чем больше медленных запросов, тем меньше процессов остаётся на быстрые запросы - тем больше очередь. | |
|
|
|
|
|
|
|
для: cheops
(24.07.2007 в 10:27)
| | >Ненормально, когда один SQL-запрос выполняется сотни секунд
Положим, в веб-приложениях (а речь в топике вроде как о них) исполнение SQL-запроса даже в одну-две секунды - уже повод попытаться как-то картину исправить. | |
|
|
|
|
|
|
|
для: Trianon
(24.07.2007 в 11:05)
| | Спасибо вам Trianon и cheops... Будем думать) | |
|
|
|