Хостер начал ругаться на большую нагрузку. Также начали появляться ошибки 500. Я так понимаю, виноват именно SOBI, т.к. генерирует он от 80 до 450 запросов на старанице. Причем 80% запросов вида Код (PHP): SELECT langKey, langValue, description + 0 AS ordering FROM jos_sobi2_language WHERE sobi2Section = 'field_opt' AND fieldid = 17 AND sobi2Lang = 'russian' ORDER BY ordering Это у всех так, или у меня что-то ни то? И как решить данную проблему? SOBI 2.8.3 скачанный с офф. сайта + куча самодельных модификаций. Joomla 1.0.12 RE с этого сайта.
Ответ: Огромное количество запросов к БД. отлючи их и посмотри в дебаг модусе, сколько запросов к базе останется. у меня с соби проблем нет.
Ответ: Огромное количество запросов к БД. Проблему вычислил. Она оказалась в файле form.class.php Удилил в нем вот такой кусок кода Код (PHP): $query = "SELECT langKey as fieldname FROM `#__sobi2_language` WHERE `fieldid` = '{$id}' AND sobi2Section != 'field_opt'"; $database->setQuery( $query ); $field = null; $database->loadObject($field); $this->fieldname = $field->fieldname; if ($database->getErrorNum()) { trigger_error("sobiField::sobiField(): DB reports: ".$database->stderr(), E_USER_WARNING); } При заходе в категорию запросов стало 127, было 203. Далее пытаюсь убрать все запросы в таблицу _sobi2_language, но там есть свои нюансы. Как это нет? form.class.php я почти не модифицировал, рзаве что подправил стили, но запросы точно не трогал. Т.е. файл оригинальный и проблема должна быть не только у меня. Также нашел на форумах SOBI упоминание о проблеме, но пока без решения.
Ответ: Огромное количество запросов к БД. может стоит, вместо того, чтобы хакать, кэшем воспользоваться? есть как встроенный кэш компонента, так и другие компоненты, которые кэшем управляют...
Ответ: Огромное количество запросов к БД. Встроенный включен, кэш SOBI включен, также установлен JoomSEF, тоже с кэшем. Насчет "другие компоненты" не уверен что они помогут, т.к. при открытии каждой страницы запросы к БД разные. Причем совершенно бессмысленные, путем удаления удалось сократить их с ~ 200 до ~ 125, а всё работает как и работало.
Ответ: Огромное количество запросов к БД. Заметил кое-что поинтересней. Код (PHP): SELECT langKey, langValue, description + 0 AS ordering FROM joz_sobi2_language WHERE sobi2Section = 'field_opt' AND fieldid = 16 AND sobi2Lang = 'russian' ORDER BY ordering Повторяется 20 раз. Ещё есть 2 таких же повторяющихся запроса только с другим fieldid. Причем номер fieldid это поле selectlist. Раньше такой же повторяющийся запрос был и для каждого inputpox, после того как я удалил кусок кода, указанный выше, остались только selectlist. Ещё одна закономерность: на странице выводится 10 объявлений. Одинаковых запросов в 2 раза больше. Подозреваю что они где-то крутятся в цикле, вот никак не могу найти где именно. Причем если удалить в form.class.php запрос вызывающий "это", на странице остаются вместо 120 60 запросов, но также пропадают все данные с selectlist полей.
Ответ: Огромное количество запросов к БД. то есть, получается, что на каждый вид поля (селектлист и т.д.) одного внесения в каталог генерится по два запроса? т.е. на показ одной записи в каталоге при 10 описательных полях генерится 20 запросов и так далее, по количеству внесений на одну страницу... так? нехорошо получается
Ответ: Огромное количество запросов к БД. Да. К примеру, на странице категории есть 10 объявлений, у каждого по 7 inputbox и 3 selectlist. Получается 10*10*2 = 200 запросов. Причем без кэша в 3-4 раза больше. Пока что мне удалось убрать inputbox, т.е. осталось 3*10*2 = 60 запросов. Это было не так сложно, т.к. в таблице _sobi2_language были просто названия полей. Они у меня и так есть в шаблоне, по этому я ничего не потерял. Данные же берутся как и прежде с sobi2_fields_data. С selectlist сложнее т.к. в sobi2_fields_data хранятся только метки (field_xx_1, field_xx_2...), а сами значения находятся в sobi2_language. Думаю ладно уже, пусть берутся эти метки, преобразовывать их буду с помощью php, т.к. всё равно значения не меняются. А не тут то было, даже это оказалось очень сложно. Код оказался ооочень сложным и запутанным (для меня) и 6 часов копания ни к чему не привели. Даже не знаю что теперь делать Заказал у хостинга VPS, надеюсь хоть на время поможет, пока не решу проблему. *Ставил для теста 2.8.4 версию, там та же картина, количество запросов не уменьшилось.
Ответ: Огромное количество запросов к БД. так ведь это значит, что в описании внесений не будет выведена инфа, которую вводили через inputbox - или как?
Ответ: Огромное количество запросов к БД. Нет. Я имел ввиду что убрал все запросы касательно inputbox и таблицы _sobi2_language. В этой таблице находятся только названия самих полей. Причем на странице добавления объявления они остались, как ни странно. А данные берутся совсем с другой таблицы, с ними проблем никогда небыло.
Ответ: Огромное количество запросов к БД. ты ещё в процессе или закончил? выложи, что и как сделал - полезное и важное дело.
Ответ: Огромное количество запросов к БД. Ок, как сделаю выложу. Пока что после переноса на VPS вообще ничего не работает, везде ошибки 500. Точнее не везде, а снова на тех же самых страницах категорий SOBI.