WooCommerce с тысячами товаров - сайт работает очень медленно - как оптимизировать запросы к БД?

22 окт. 2012 г., 20:26:19
Просмотры: 23.4K
Голосов: 3

На данный момент у меня около 8000 товаров в WooCommerce, и страница товара на фронтенде загружается несколько секунд, даже после кэширования.

Мой VPS хостинг предлагает использовать несколько баз данных.
Это правильный метод, и если да, то как это возможно реализовать?

Буду благодарен за любые предложения по ускорению запросов к базе данных или просто ускорению работы фронтенда.

1
Комментарии

Я обнаружил, что одним из факторов, замедляющих работу WooCommerce, может быть размер мета-таблицы (здесь моя более подробная статья с подтверждающими данными: http://www.danielauener.com/slow-woocommerce-many-products/). Если этого нельзя избежать, мои рекомендации - более мощный сервер или ElasticSearch.

daniel.auener daniel.auener
6 мар. 2017 г. 19:44:26
Все ответы на вопрос 3
4

Это действительно вопрос сервера, а не конкретно WordPress.

Вы столкнулись с ограничением скорости сервера MySQL на 1and1. К сожалению, они известны как медленный shared-хостинг, и по этой причине я сомневаюсь, что их VPS работают лучше.

Кэширование и CDN могут помочь лишь до определенного предела. Вам нужна большая производительность в виде более быстрого сервера MySQL, и если вы уже платите за VPS, перейдите на более качественного VPS-провайдера, например Media Temple.

Там, имея root-доступ, вы сможете использовать такие утилиты, как http://mysqltuner.com, для записи и анализа производительности сервера MySQL и настройки параметров памяти сервера и кэша запросов в конфигурационном файле my.cnf. Вы также сможете настроить Apache (в httpd.conf) для обработки высоких нагрузок.

Попытки оптимизировать запросы к базе данных, выполняемые WooCommerce или WordPress, имеют мало смысла; любые изменения придется вносить заново после обновлений.

30 окт. 2012 г. 01:18:51
Комментарии

Я тестирую WP Super Cache, но это не особо помогло. Я доверяю вашему серверу, но 1and1 утверждает, что проблема в коде сайта. Не могли бы вы быстро взглянуть и подтвердить? http://s15430161.onlinehome-server.com/shop/product-category/dark-horse/ просто кликните на любую из миниатюр комиксов.

И на данный момент в базе около 13 000 товаров.

Stephen Stephen
30 окт. 2012 г. 19:39:12

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

Stephen Stephen
30 окт. 2012 г. 19:58:38

Забудьте про кеширование. Если у вас есть root-доступ на этом VPS, проверьте ваш my.cnf файл и запустите mysqltuner.pl для настройки MySQL.

markratledge markratledge
1 нояб. 2012 г. 06:31:36

Это не узкое место MySQL - проблема в ужасном коде внутри WooCommerce и WordPress, который перебирает все товары в базе данных с помощью PHP, просто чтобы подсчитать количество товаров в каждой категории. На моем сервере запрос MySQL для 100 000 товаров выполняется за 0,3 секунды, но при использовании базового PHP-FPM страница загружается 185 секунд (8-ядерный VPS!). Когда я использую HHVM, время сокращается до 10 секунд.

Dave Hilditch Dave Hilditch
15 янв. 2015 г. 01:23:16
0

У меня есть два решения, которые я могу предложить для устранения вашей проблемы. Первое - использовать elasticsearch.com для индексации всех товаров. Это одновременно значительно улучшит поисковые возможности вашего сайта (при правильной интеграции). Я бы рекомендовал разместить решение с Elasticsearch на отдельном сервере.

Я предполагаю, что ваша система кэширования настроена неправильно или сервер перегружен. Более бюджетное решение (вариант №2) - использовать бесплатные серверы кэширования от cloudflare.com. Обычно это наиболее экономически эффективный способ решить проблему, если вы не хотите заниматься оптимизацией сервера.

30 окт. 2012 г. 01:02:13
0

Кэширование с помощью Varnish — это лучшее решение, однако вам следует избегать кэширования фрагмента корзины в шапке и страниц корзины/оформления заказа. Я считаю, что WooCommerce следует настроить с использованием Varnish Edge Side Includes. Чтобы исключить страницу оформления заказа, следуйте этим инструкциям:

http://docs.woothemes.com/document/configuring-caching-plugins/#section-3

28 апр. 2014 г. 11:02:24