Foren / National / Russian / Тотальное сокращение запросов к ба

Sergeich
#1 19. August 2008, 17:28
На мой взгляд Сед неоправданно грузит базу, на генерацию среднестатистической странички уходит около 20 запросов, на генерацию индекса (у меня, к примеру) около 50 запросов (это с включеным кешированием всех плагинов кроме новостей) без кеширования под сотню. Такая ситуация не есть нормальная. Нужно думать, как сильно снизить кол-во запросов при этом не потеряв в производительности системы.
Trustmaster
#2 19. August 2008, 18:12
Сотня - это перебор, конечно. У меня на одном сайте почти 60 плагинов стоит, но запросов гораздо меньше. 20-50 запросов - это отличный показатель по нынешним меркам. Если сомневаешься, поставь Typo3/e107/Joomla с примерно таким же набором плагинов и посмотри :wink

Оптимизировать, конечно, надо. Это долгая кропотливая работа по аудиту имеющегося кода и устранению "узких мест", покамест на это времени ни у кого не хватает.

Нужен принципиально новый кэш, основанный на событийной, а не повременной модели. Но он ожидается не раньше версии 0.1.0.
May the Source be with you!
esclkm
#3 13. Dezember 2008, 20:24
видел уже к версии 1 близимся. ну что исправлено данное явление?
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Sergeich
#4 13. Dezember 2008, 20:50
кеш сделали. Теперь движок, как минимум, при генерации страницы не перетряхивает все бб-коды, а просто берёт из базы готовый хтмл. Это огромный шаг вперёд.
Trustmaster
#5 14. Dezember 2008, 00:10
Ну это только кэш парсера. Настоящий кэш, который позволит сохранять и распределять данные между потоками, еще впереди, и будет, как сказано, в версии 0.1.0, до которой мы еще не добрались (следующая 0.0.2).
May the Source be with you!
Boss
#6 14. Juni 2009, 17:11
А может сформированные HTML-страницы и HTML-посты форума держать не в базе, а файлах? При вызове страницы просто тыкаемся в каталог и ищем там файл с нужным ID-номером. Если такового нет, то тогда уже обращаемся к базе и генирируем страницы/посты на базе BB-кодов. В LDU по-моему так и было задумано. С тех времен еще каталог HTML в DATAS валяется. Чем не вариант? База ведь разгружается...
Sergeich
#7 14. Juni 2009, 17:22
Зато размер сайта неимоверно растёт :)
Boss
#8 14. Juni 2009, 17:36
Спасибо за быстрый ответ. :-) Вообще-то со свободным местом на хостингах проблем вроде нет. Граздо чаще юзеры сталкиваются с воплями хостигов снизить нагрузку на процессор и на базу.

Меня все же интересует насколько такой подход хорош. Поскольку реализовать его можно достаточно легко! Проблем не вижу. Если прикинуть, то наверно, время обращение к базе меньше, чем время обращения к диску. Однако базе и так всегда есть чем заняться, поэтому если страницы и посты форума будут на диске, то это хорошо. Что думаете?

Как вариант можно сделать лишь для страниц. Посты форума зачастую мелкие и дробить ветки форума на кучу файлов наверно не есть хорошо. Если только всю ветку форума не кешировать в файле сразу. ;-) А вот страницы - это статьи и иногда они весьма и весьма большие.
Sergeich
#9 14. Juni 2009, 18:09
Да я и не против, только нужно эту функцию иметь отдельным модулем.
Но кроме этого при подобном подходе к кешированию на свалку идёт скинабельность котонти.
Boss
#10 14. Juni 2009, 19:12
# Sergeich : Да я и не против, только нужно эту функцию иметь отдельным модулем.
Теоретически можно хоть плагином. Но плагин не отключает выполнение исходного кода. Т.е. мы берем из папки файлы с HTML, но дополнительно в коде движка сохраняется запрос и к базе. Так что похоже только хак.

# Sergeich : Но кроме этого при подобном подходе к кешированию на свалку идёт скинабельность котонти.
Почему это? Мы ведь не страницу со скином сразу сохранять будем, а куски HTML кода. Такие же как сейчас хранятся в базе для страниц.
Sergeich
#11 15. Juni 2009, 01:13
А тогда смысл всё это городить, ради одного запроса к базе? Тут сильно полезнее научиться кэшировать шапку сайта, ибо основная масса запросов из неё идёт :)
Boss
#12 15. Juni 2009, 15:04
Вот я и спрашиваю о полезности. В данном случае еще необходимо учитывать, что страницы бывают разные. У меня допустим на сайте статьи - 30 кб оформленным текстом часто встречаются. Я помню баннерную систему тестировал, так там предлагалось баннеры в базе хранить. Загрузка была очень значительной, по сравнению с тем что просто файлы с диска брать. А казалось бы чего там? Подумаешь два-три баннера по 15 кб.

Насчет остального. Конечно надо разбираться, что там за запросы идут. Скин ведь есть, зачем запросы к базе при построении шапки? Всякие пункты меню из базы - это сомнительное удобство. Проше настроить один раз в скине, чем при каждом обращении к сайту терзать базу.