Вопрос или проблема
Я оптимизирую базу данных своего сайта, который использует WooCommerce.
Когда я наткнулся на таблицу wp_comments
, я обнаружил, что ее общий объем близок к 100 МБ. Она полностью заполнена статусами заказов WooCommerce за последние несколько лет.
Каков лучший способ уменьшить размер моей базы данных?
Чтобы удалить строки в вашем wp_comments
, вы можете использовать оператор SQL следующим образом
DELETE FROM wp_comments WHERE comment_date < '2016-01-01' AND comment_type="order_notes"
Это удалит все комментарии, старше 1 января 2016 года. Я действительно верю, что WooCommerce использует order_notes
в качестве comment_type
, убедитесь в этом, проверив этот столбец перед выполнением запроса.
Конечно, вам нужно адаптировать FROM wp_comments
, чтобы отразить префикс, который вы используете в своей базе данных.
Также сделайте резервную копию вашей базы данных ПЕРЕД выполнением этого оператора, она УДАЛИТ ваши данные!
ИСПРАВЛЕНИЕ
Вот альтернатива запроса
DELETE FROM wp_comments WHERE comment_date < DATE_ADD(NOW(), INTERVAL -365 DAY) AND comment_type="order_notes"
Он выполняет ту же задачу, но оператор SQL будет генерировать сегодняшнюю дату и вычитать 365 дней из нее, удаляя все, что старше 365 дней. Мне с этим проще работать. Вы можете запускать этот запрос каждый месяц, и он всегда будет удалять записи старше 365 дней с момента выполнения.
Ответ или решение
Для оптимизации базы данных сайта, использующего WooCommerce, и уменьшения размера таблицы wp_comments
, можно воспользоваться SQL-запросами для удаления комментариев, не относящихся к активным процессам или уже устаревшим. Вот подробная инструкция, как удалить устаревшие комментарии и освободить место в базе данных.
Шаги по удалению комментариев
-
Резервное копирование базы данных: Прежде чем вносить какие-либо изменения в базу данных, обязательно создайте резервную копию. Это позволит вам восстановить данные в случае ошибки. Вы можете воспользоваться инструментами, такими как phpMyAdmin или плагинами для создания резервных копий, такими как UpdraftPlus или Duplicator.
-
Проверка структуры таблицы: Прежде чем запускать запросы, желательно убедиться, что в вашей таблице
wp_comments
действительно содержатся комментарии типаorder_notes
, которые вы хотели бы удалить. Можно выполнить запрос:SELECT DISTINCT comment_type FROM wp_comments;
Это позволит вам увидеть все различные типы комментариев.
-
Удаление устаревших комментариев:
Если вы хотите удалить комментарии более ранних дат, например, старше 2016 года, используйте следующий SQL-запрос:DELETE FROM wp_comments WHERE comment_date < '2016-01-01' AND comment_type = 'order_note';
Либо, если вы хотите удалять комментарии на основе более актуальной даты, например, удалять комментарии старше 365 дней от текущей даты, вы можете использовать следующий запрос:
DELETE FROM wp_comments WHERE comment_date < DATE_ADD(NOW(), INTERVAL -365 DAY) AND comment_type = 'order_note';
-
Проверка результатов: После выполнения запроса рекомендуется проверить количество оставшихся комментариев и размер таблицы, чтобы убедиться, что запрос сработал корректно. Вы можете использовать запрос:
SELECT COUNT(*) FROM wp_comments;
-
Оптимизация таблицы: После удаления больших объемов данных желательно оптимизировать таблицу для освобождения места:
OPTIMIZE TABLE wp_comments;
Заключение
Эти шаги помогут вам эффективно очистить таблицу wp_comments
и уменьшить размер базы данных. Также рекомендуется периодически выполнять очистку базы данных, чтобы поддерживать ее в оптимальном состоянии. Помните о важности резервного копирования перед удалением данных.