WooCommerce с тысячами товаров - сайт работает очень медленно - как оптимизировать запросы к БД?
На данный момент у меня около 8000 товаров в WooCommerce, и страница товара на фронтенде загружается несколько секунд, даже после кэширования.
Мой VPS хостинг предлагает использовать несколько баз данных.
Это правильный метод, и если да, то как это возможно реализовать?
Буду благодарен за любые предложения по ускорению запросов к базе данных или просто ускорению работы фронтенда.

Это действительно вопрос сервера, а не конкретно WordPress.
Вы столкнулись с ограничением скорости сервера MySQL на 1and1. К сожалению, они известны как медленный shared-хостинг, и по этой причине я сомневаюсь, что их VPS работают лучше.
Кэширование и CDN могут помочь лишь до определенного предела. Вам нужна большая производительность в виде более быстрого сервера MySQL, и если вы уже платите за VPS, перейдите на более качественного VPS-провайдера, например Media Temple.
Там, имея root-доступ, вы сможете использовать такие утилиты, как http://mysqltuner.com, для записи и анализа производительности сервера MySQL и настройки параметров памяти сервера и кэша запросов в конфигурационном файле my.cnf. Вы также сможете настроить Apache (в httpd.conf) для обработки высоких нагрузок.
Попытки оптимизировать запросы к базе данных, выполняемые WooCommerce или WordPress, имеют мало смысла; любые изменения придется вносить заново после обновлений.

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

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

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

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

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

Кэширование с помощью Varnish — это лучшее решение, однако вам следует избегать кэширования фрагмента корзины в шапке и страниц корзины/оформления заказа. Я считаю, что WooCommerce следует настроить с использованием Varnish Edge Side Includes. Чтобы исключить страницу оформления заказа, следуйте этим инструкциям:
http://docs.woothemes.com/document/configuring-caching-plugins/#section-3
