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

Click here to view original web page at www.kobzarev.com
Обложка к записи Оптимизация WooCommerce путём переноса заказов в отдельную таблицу

WooCommerce Custom Orders Table — простой, но полезный плагин, который улучшает производительность WooCommerce, добавляя пользовательскую таблицу с правильными индексами для хранения информации о заказах.

Бэкграунд

В WooCommerce 3.0 появился долгожданный CRUD (Create, Read, Update и Delete) интерфейс, благодаря которому появилась возможность унифицировать способ хранения и получения данных WooCommerce.

Однако заказы по-прежнему хранятся в WordPress как пользовательские типы записей, причем каждая дополнительная часть информации о заказе (адрес выставления счета, адрес доставки, налоги, итоги и т. д.) хранится в мета записях.

Не секрет, что WooCommerce создает более 40 отдельных мета записей для каждого отдельного заказа. Если у вашего магазина в день появляется хотя бы 10 заказов, то в таблице мета записей создаётся 400 новых строк каждый день!

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

Плагин WooCommerce Custom Orders Table использует WooCommerce CRUD для сохранения данных о заказе в единую произвольную таблицу, оптимизированную для запросов WooCommerce.

Один заказ создает только одну новую строку с минимальным влиянием на производительность.

Требования

Для правильной работы WooCommerce Custom Orders Table необходим WooCommerce 3.5.1 или выше.

Если вы хотите перенести существующие данные о заказах, у вас должна быть возможность запускать команды WP-CLI в вашей среде WooCommerce.

Миграция

После установки и активации плагина вам нужно будет перенести заказы из мета записей во вновь созданную таблицу заказов.

Самый простой способ сделать это — через WP-CLI. Плагин поставляется с тремя командами, которые помогут вам в этом процессе.

Подсчёт количества заказов для миграции

Если вы хотите увидеть количество заказов, которые еще не были перемещены в новую таблицу заказов, вы можете быстро получить это значение с помощью команды count:

1wp wc orders-table count

Миграция заказов в новую таблицу

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

1wp wc orders-table migrate

Опции

--batch-size=<размер> — количество заказов, которое обрабатывается за одну итерацию. По умолчанию 100.

--save-post-meta — предотвращает удаление мета записей из таблицы wp_postmeta при успешной миграции в новую таблицу.

Копирование заказов обратно в мета записи

Если вам потребуется вернуть данные о заказах обратно в таблицу wp_postmeta (например при удаление плагина WooCommerce Custom Orders Table), вы можете откатить миграцию в любое время с помощью команды backfill.

1wp wc orders-table backfill

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

Опции

--batch-size=<размер> — количество заказов, которое обрабатывается за одну итерацию. По умолчанию 100.

Сотрудничество

Если вы заинтересованы в том, чтобы внести свой вклад в разработку плагина или хотите сообщить о проблеме, ознакомьтесь с соответствующим руководством.

Ссылки