Оптимизация WooCommerce путём переноса товаров в отдельную таблицу

Одним из самых узких мест в WooCommerce по производительности является хранение товаров и заказов в стандартной таблице записей WordPress.

Благодаря тому, что WooCommerce с версии 3.0 добавили встроенный функционал Data Stores и CRUD, появилась простая возможность переносить хранилище данных в произвольные таблицы.

Плагин WooCommerce Custom Product Tables позволяет в один клик перенести хранилище товаров, атрибутов, изображений, их связей и настроек в произвольные таблицы с правильной структурой и индексами.

Производительность

Перенос товаров в произвольные таблицы по результатам тестирования даёт 30% прирост производительности.

Замеры производились на идентичных инсталляциях (500 товаров, тема Storefront, 70000 заказов и 1.4 млн строк метаданных), но с одним отличием: на второй инсталляции был установлен плагин WooCommerce Custom Product Tables.

Для простого создания огромного количества товаров и заказов был использован плагин WooCommerce Smooth Generator.

Результаты замеров приведены на графике ниже и они потрясающе.

Установка плагина

Для установки плагина вам потребуется:

  • Скачать последнюю версию плагина Custom Products Table.
  • Скачать и установить WooCommerce 3.5 Dev или выше.
  • Скачать и установить WP-CLI для запуска процесса миграции товаров в новое хранилище.

Так как плагин пока находится на стадии разработки, не рекомендуется его устанавливать на продуктовых серверах.

Миграция

Для запуска процесса миграции данных в плагине предусмотрено две WP-CLI команды.

wp wc-product-tables migrate-data [--clean-old-data]

Эта команда перенесёт данные из текущих таблиц WordPress в новое хранилище.

Если передать дополнительный параметр --clean-old-data, то все данные по товарам, которые хранятся в стандартных таблицах WordPress, будут уничтожены безвозвратно.

wp wc-product-tables recreate-tables

Эта команда удалит все свежесозданные таблицы и данные о товарах в них, а затем создаст новые чистые таблицы.

Любые новые товары, созданные после активации плагина, будут созданы в новых таблицах и не будут доступны при деактивации плагина.

Таблицы

После установки и активации плагина будут созданы несколько новых таблиц в базе данных для хранения информации о товарах.

  • wc_products – содержит информацию о товарах, исключая большую часть метаданных.
  • wc_product_attributes – содержит информацию об атрибутах товаров и их настройки.
  • wc_product_attribute_values – содержит информацию о значениях атрибутов товаров и их настройки.
  • wc_product_downloads – содержит информацию о скачиваемых товарах и их настройки.
  • wc_product_relationships – содержит информацию о связях между товаров и их объектов, например, изображений.
  • wc_product_variation_attribute_values – содержит информацию о данных вариаций для товаров.

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

Источник: https://www.kobzarev.com/wordpress/woocommerce-custom-product-tables/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

1 комментарий к “Оптимизация WooCommerce путём переноса товаров в отдельную таблицу”

Добавить комментарий

%d такие блоггеры, как: