Улучшите SQL-запрос Wordpress при поиске продукта по SKU или названию. ⇐ Jquery
Улучшите SQL-запрос Wordpress при поиске продукта по SKU или названию.
У меня возникли серьезные проблемы с производительностью при поиске продуктов по названию или SKU в администраторе WordPress WooCommerce. При наличии около 40 тысяч товаров поиск занимает от 16 до 50 секунд, что довольно медленно. Более того, иногда эта задержка приводит к ошибке 504.
Я искал решения в Интернете, просматривал форумы и даже пробовал использовать чат-ботов, таких как ChatGPT, но не нашел окончательного решения.
С помощью плагина Query Monitor я определил конкретный запрос, который, по-видимому, является основным виновником:
ВЫБЕРИТЕ ОТДЕЛЬНЫЕ сообщения.ID в качестве идентификатора продукта, сообщения.post_parent в качестве родительского_ид. ИЗ сообщений wpprefix_posts ЛЕВОЕ ПРИСОЕДИНЕНИЕ wpprefix_wc_product_meta_lookup wc_product_meta_lookup ON messages.ID = wc_product_meta_lookup.product_id ЛЕВОЕ ПРИСОЕДИНЕНИЕ wpprefix_wc_product_meta_lookup родитель_wc_product_meta_lookup ON messages.post_type = 'product_variation' И родитель_wc_product_meta_lookup.product_id = messages.post_parent ГДЕ сообщения.post_type IN('product','product_variation') И ( ( (posts.post_title LIKE '%DELETEME%') ИЛИ (posts.post_excerpt LIKE '%DELETEME%') ИЛИ (posts.post_content LIKE '%DELETEME%') ИЛИ ( wc_product_meta_lookup.sku КАК '%DELETEME%' ) ИЛИ ( wc_product_meta_lookup.sku = '' И родитель_wc_product_meta_lookup.sku КАК '%DELETEME%' ) )) СОРТИРОВАТЬ ПО messages.post_parent ASC, messages.post_title ASC В нашем случае нам нужно искать продукты только по их названию (названию) и SKU. Я хочу оптимизировать этот поиск, особенно в рамках администратора WooCommerce, учитывая большое количество продуктов, с которыми мы работаем.
Кроме того, я обнаружил в журналах сервера такие ошибки, как:
Истек тайм-аут исходящего потока: неизвестная ошибка при чтении заголовка ответа из восходящего потока "/wp-admin/edit.php?s=DELETEME..." Я также заметил еще несколько «неизвестных ошибок при чтении заголовка ответа из восходящего потока» для других конечных точек, таких как GET /wp-json/.
Более того, когда пользователи пытаются искать продукты во внешнем интерфейсе, он использует admin-ajax.php, но он тоже не работает должным образом.
Несмотря на увеличение ресурсов моего VPS, эти проблемы сохраняются. Может ли кто-нибудь подсказать мне, как написать или настроить код для файла function.php моей темы, чтобы повысить производительность этого поискового запроса и устранить эти ошибки? Будем очень признательны за любую помощь или направление!
У меня возникли серьезные проблемы с производительностью при поиске продуктов по названию или SKU в администраторе WordPress WooCommerce. При наличии около 40 тысяч товаров поиск занимает от 16 до 50 секунд, что довольно медленно. Более того, иногда эта задержка приводит к ошибке 504.
Я искал решения в Интернете, просматривал форумы и даже пробовал использовать чат-ботов, таких как ChatGPT, но не нашел окончательного решения.
С помощью плагина Query Monitor я определил конкретный запрос, который, по-видимому, является основным виновником:
ВЫБЕРИТЕ ОТДЕЛЬНЫЕ сообщения.ID в качестве идентификатора продукта, сообщения.post_parent в качестве родительского_ид. ИЗ сообщений wpprefix_posts ЛЕВОЕ ПРИСОЕДИНЕНИЕ wpprefix_wc_product_meta_lookup wc_product_meta_lookup ON messages.ID = wc_product_meta_lookup.product_id ЛЕВОЕ ПРИСОЕДИНЕНИЕ wpprefix_wc_product_meta_lookup родитель_wc_product_meta_lookup ON messages.post_type = 'product_variation' И родитель_wc_product_meta_lookup.product_id = messages.post_parent ГДЕ сообщения.post_type IN('product','product_variation') И ( ( (posts.post_title LIKE '%DELETEME%') ИЛИ (posts.post_excerpt LIKE '%DELETEME%') ИЛИ (posts.post_content LIKE '%DELETEME%') ИЛИ ( wc_product_meta_lookup.sku КАК '%DELETEME%' ) ИЛИ ( wc_product_meta_lookup.sku = '' И родитель_wc_product_meta_lookup.sku КАК '%DELETEME%' ) )) СОРТИРОВАТЬ ПО messages.post_parent ASC, messages.post_title ASC В нашем случае нам нужно искать продукты только по их названию (названию) и SKU. Я хочу оптимизировать этот поиск, особенно в рамках администратора WooCommerce, учитывая большое количество продуктов, с которыми мы работаем.
Кроме того, я обнаружил в журналах сервера такие ошибки, как:
Истек тайм-аут исходящего потока: неизвестная ошибка при чтении заголовка ответа из восходящего потока "/wp-admin/edit.php?s=DELETEME..." Я также заметил еще несколько «неизвестных ошибок при чтении заголовка ответа из восходящего потока» для других конечных точек, таких как GET /wp-json/.
Более того, когда пользователи пытаются искать продукты во внешнем интерфейсе, он использует admin-ajax.php, но он тоже не работает должным образом.
Несмотря на увеличение ресурсов моего VPS, эти проблемы сохраняются. Может ли кто-нибудь подсказать мне, как написать или настроить код для файла function.php моей темы, чтобы повысить производительность этого поискового запроса и устранить эти ошибки? Будем очень признательны за любую помощь или направление!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
MySQL Получите сумму того же продукта от того же PO и закажите их по названию продукта
Anonymous » » в форуме MySql - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
WooCommerce: показывать текущий SKU и GTIN на переменной странице продукта.
Anonymous » » в форуме Php - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
WooCommerce: показывать текущий SKU и GTIN на переменной странице продукта.
Anonymous » » в форуме Php - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-