taxonomy_get_parents и 250 запросов к БД

Главные вкладки

Аватар пользователя Zwe3do4et Zwe3do4et 6 ноября 2017 в 3:09

включил Devel посмотреть что там происходит. (страница - https://www.pnevmoteh.ru/pnevmogaykoverty-12)
и там 250 запросов от taxonomy_get_parents (фото прикрепляю)

Для чего там 250 запросов и как их можно сократить?

ВложениеРазмер
Иконка изображения taxonomy_get_parents 283.65 КБ

Комментарии

Аватар пользователя Olegars Olegars 6 ноября 2017 в 3:23

ну как для чего, ему же надо определить какие товары показывать в данной категории...
сократить можно, по другому каталог надо делать, думаю столько запросов делает какой нибудь фильтр по терминам "с глубиной"

Аватар пользователя Zwe3do4et Zwe3do4et 6 ноября 2017 в 12:43

так а как-то закэшировать эти данные, чтобы он каждый раз не обращался в БД? данные ведь не поменялись... а там например по крону пусть сбрасывается этот кэш

Аватар пользователя jsv jsv 6 ноября 2017 в 13:27

А что, тормозит сайт что ли? Или из принципа?
А так писать собственное кеширование(модуль), и то не факт, что можно будет обойтись без патча

Аватар пользователя Olegars Olegars 6 ноября 2017 в 18:32

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

Аватар пользователя bsyomov bsyomov 7 ноября 2017 в 14:24

Вообще, 250 запросов эти, судя по картинке, совсем не много времени кушают, там данные в миллисекундах(1/1000c) всё же... Т.е. глядя на картинку не скажешь, что так уж из-за этих запросов что-то тормозит. Не всегда много запросов == медленно, особенно, если это простые запросы по индексам, например.
Может проблема в не правильной интерпретации данных, и тормозит что-то совсем другое?

Про кеширование - кешировать-то не конечные данные выборки фильтра, я думаю, предлагалось, а промежуточные данные таксономии, и иногда, в этом действительно есть смысл.

Аватар пользователя Olegars Olegars 7 ноября 2017 в 16:59

Там и так кешируется все что можно безболезненно кешировать (view's cache), можно еще включить кеширование в самом представлении, но тут уже скорее всего начнутся проблемы.
250 запросов по картинке не много кушают, пока там 1 человек смотрит, а будет 10 посетителей и товаров тыщи 2-3 уже другое дело будет. Тем более запросы там не простые, а с джоинами.
Тормозит точно это, я не догадки говорю, а то что опробовал. Если есть фильтр "с глубиной" он именно так работает, создает хренову кучу джоинов. По этому такое построение каталога заведомо дефективное.