Как уменьшить количество запросов в бд. WooCommerce (1200 запросов в БД)?
Всем привет! Помогите разобраться в такой ситуации:
Есть сайт - Wordpress + WooCommerce + еще ~10 плагинов. в WooCommerce 1000 пустых категорий без товаров.
Значит отключаю WooCommerce - на выходе имею 107 запросов в администраторской панели и 221 на главной странице
А при включенном - WooCommerce - получаю ~1160 запросов в администраторской панели и примерно столько же на главной странице
К слову.. на других страницах сайта ситуация не меняется, так что на Главной странице ничего сверхъестественного нету.
При отключении всех плагинов но оставленным WooCommerce - ситуация сильно не меняется - около 1000 запросов.
Мне помогло объектное кэширование с Redis, запросов сразу убавляется до ~36. Но вдруг база товаров вырастет до 100К и категорий товаров увеличится еще 1000, то что тогда? Чувствую что однажды прижмет, поэтому хочу решить проблему на начальном этапе. Надеюсь на вашу помощь, всех заранее благодарю за ответы.
UPDATE 02.03.19: В администраторской панели wp теперь нормальное количество запросов: ~90, дело было в корявом плагине для билдера страниц - создавал ооочень много запросов, увидел в query monitor - до этого что то не обратил внимание, грешил на тот же woocommerce.
PS: Сейчас удалил порядка 120 категорий - запросов уменьшилось на столько же.
из кастомного при создании категории только: иконки, которые отображаются рядом с названием в меню. UPDATE 02.03.19 17:48 Проблема решена :) Странно звучит, но решена она путем удаления выпадающего списка категорий из ПОЛЯ ПОИСКА (от темы)(то есть раньше можно было выбирать по каким таксономиям делать поиск) теперь количество запросов нормализовалось.
Stalker_RED, ну как сказать. В теории - однозначно да. На практике, в WP (да еще плюс WC сверху, а возможно еще какой-нибудь ACF в придачу) происходит постоянное обращение к wp_options, получение записей каждым виджетом / фрагментом страницы, а потом к каждой этой записи получение метаданных отдельным запросом и тд. И это вполне реальная ситуация. Вот только 98% этих запросов кешируемы, достаточно положить класс для работы с object cache. Да и 1140 из 1160 запросов не будут влиять на производительность настолько, чтобы это было заметно. Хорошо ли это? Не очень. Правильно ли это? Нет, конечно. Но это WP + WC. Плюс, скорее всего кривая кастомная конфигурация и через Ж собранная тема.
Вопрос ИМХО немного бредовый, что есть плагин - черный ящик.
Как его улучшить? Вопрос очевиден - обратится к разработчикам.
Что можно сделать, чтобы оптимизировать магазин? Написать свой плагин, или воспользоваться уже готовым решением.
Про кеширование говорить не буду, так как вопрос не про это.
Платить за доработку плагина также не советую, так как плагин обновляется.
Как-то так..
Андрей Андреев, я не пользуюсь чужими плагинами и темами, достаточно конструктора под названием WP.
Не все решения написаны мной, но они понятны мне и я с ними согласен.
Андрей Андреев, Вы восприняли этот вопрос бредовым, возможно потому что вы зациклились в вопросе на плагине WooCommerce. Но все же я благодарю за ваш ответ, уходить с WooCommerce - я конечно же не собираюсь, и буду воевать с ним дальше)
Тут речь идет не о конкретно WooCommerce, а о том, что любой плагин это черный ящик. И любые фильтры - до первого обновления.
И я не советовал Вам уходить с него, но на вопрос в контексте, которого он задан - он не решаем, перефразируйте и получите нужный ответ.
PS. Если Вам не нравится один плагин, пользуйтесь другим или напишите свой. Или тут возможен еще какой-то ответ? ))
Анатолий, Вопрос я как раз таки задавал с уклоном на WooCommerce, так как логично предположить что запросы лишние все таки он создает. Про уход с WooCommerce (а точнее с wordpress) извините, это в соседней веточке посоветовали, а я нас вот так в горяча)
veltolo, Вы серьезно считаете, что разработчики написали не оптимальный код с лишними запросами?
И сейчас какой-то Вася, Вам скажет пропишите строчку кода, и получите уменьшение запросов на половину?
))
Можно ли получить уменьшение запросов в 2-3 раза? Можно, только нужно переписать плагин с нуля, и заточить под определенную задачу.
Анатолий, "Вы серьезно считаете, что разработчики написали не оптимальный код с лишними запросами?"
Хех, я такого не говорил, не упоминал, не намекал на это, это всего лишь ваши догадки и предположения :)
И да, вы не поверите, но какой-то Вася сегодня действительно помог путем внесения "прописывания строчки кода" уменьшил количество запросов, правда не вдвое, но все же). Про переписку плагина с нуля мы уже слышали - еще лучше наверно весь Wordpress пересобрать. А вот про задачи тут уже интересно - а что у WooCommerce есть какая то мультизадачность отличающаяся от других ecommerce решений? Она уже заточена под определенную задачу - продавать товары. Ничего сверхъестественного)
Анатолий, Ну я надеюсь вы поняли что удаление мета неймов не относится к оптимизации запросов к БД :) Просто "Вася" решил прихватить еще одного "зайца".
Анатолий, Недоступен для (подключения, для захода, для входа, как угодно) другим (людям, компьютерам, сетевым устройствам) то есть он совершенно ограничен, его только я могу видеть. Странно звучит, но я не знаю как проще объяснить суть работы любого локального сервера.
Анатолий, Спасибо вам, да прибудут с вами основы принципов устройства и работы локальных серверов а так же работы WooCommerce и Wordpress :) Удачи в познаниях)
Даже не попытавшись посмотреть что именно нагружает БД? Новые тренды - разработка наугад.
Вы серьезно считаете, что разработчики написали не оптимальный код с лишними запросами?
Да такое на каждом шагу. Лично доводилось уменьшать с 306 запросов до 7 -
вместо 300 запросов в цикле получился один запрос.
1200 пока не встречал, но было бы любопытно посмотреть, чисто поржать.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.