С течением времени база данных WordPress может значительно разрастаться из-за накопления старых ревизий записей, автосохранений и устаревших черновиков. Это замедляет работу сайта, увеличивает время отклика и нагрузку на сервер. В этой статье подробно разберем, как очистить базу данных WordPress от ненужных данных, чтобы повысить производительность и уменьшить размер базы данных.
Почему важно очищать базу данных от ревизий и старых записей
По умолчанию WordPress хранит множество ревизий каждой записи, что позволяет при необходимости откатиться к предыдущей версии. Однако без контроля количество ревизий может достигать сотен на одну статью, что значительно увеличивает таблицу wp_posts и замедляет запросы.
Кроме ревизий, в базе остаются черновики и автосохранения, которые уже не нужны. Удаление таких данных снижает объем базы, уменьшает время резервного копирования и ускоряет работу сайта.
Регулярная очистка базы — это обязательная часть технического обслуживания WordPress, особенно для сайтов с большим объемом контента.
Очистка ревизий и ненужных записей через SQL-запросы
Один из самых быстрых способов — выполнить SQL-запросы напрямую через phpMyAdmin или любой другой инструмент работы с базой данных. Ниже пример запроса для удаления всех ревизий записей:
DELETE FROM wp_posts WHERE post_type = 'revision';Этот запрос удалит все ревизии, освобождая место. Аналогично можно удалить автосохранения и ненужные черновики:
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
DELETE FROM wp_posts WHERE post_status = 'trash';Однако стоит быть очень осторожным с удалением — всегда делайте резервную копию базы перед выполнением запросов.
Удаление ревизий через PHP-функцию wpskill_delete_revisions()
Для удобства можно автоматизировать процесс через функцию в файле functions.php вашей темы или в виде отдельного плагина:
function wpskill_delete_revisions() {
global $wpdb;
$table = $wpdb->posts;
$query = "DELETE FROM $table WHERE post_type = 'revision'";
$result = $wpdb->query($query);
return $result;
}
// Для запуска вызывайте вручную или через WP-CLI
Эта функция удалит все ревизии из базы. Можно расширить её, добавив удаление автосохранений и мусора.
Использование плагинов для очистки базы данных
Если не хотите работать с кодом и SQL напрямую, воспользуйтесь проверенными плагинами:
- WP-Optimize — позволяет удалить ревизии, черновики, временные опции и оптимизировать таблицы базы данных одним кликом.
- Advanced Database Cleaner — более гибкий инструмент с возможностью планирования очистки и детального анализа базы.
- Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpskill.ru&utm_medium=article&utm_campaign=kak-ochistit-bazu-dannyh-wordpress-ot-staryh-zapisej-i-revizij) — многофункциональный плагин для оптимизации и ускорения сайта, в том числе с очисткой базы.
Плагины удобны для регулярного использования и подходят администраторам, не знакомым с SQL.
Оптимизация базы данных после очистки
После удаления ненужных данных важно выполнить оптимизацию таблиц, чтобы физически освободить место на диске и улучшить производительность запросов.
Это можно сделать через phpMyAdmin, выбрав таблицы и нажав «Оптимизировать», или программно через WP-функции:
function wpskill_optimize_database() {
global $wpdb;
$tables = $wpdb->get_col("SHOW TABLES LIKE '{$wpdb->prefix}%'");
foreach ($tables as $table) {
$wpdb->query("OPTIMIZE TABLE $table");
}
}
// Вызовите функцию после очистки базы
Регулярная оптимизация предотвращает фрагментацию таблиц и улучшает отклик сайта.
Как ограничить количество ревизий для новых записей
Чтобы база не разрасталась, полезно ограничить число ревизий, которые WordPress сохраняет. Для этого добавьте в wp-config.php следующую строку:
define('WP_POST_REVISIONS', 5); // Хранить не более 5 ревизийМожно задать любое число или полностью отключить ревизии, указав false, но это не рекомендуется из-за риска потери контента.
Ограничение ревизий существенно снижает нагрузку на базу при активном редактировании большого количества записей.
Автоматизация очистки и оптимизации через WP-Cron
Для поддержания базы в порядке можно настроить автоматический запуск функций очистки и оптимизации с помощью WP-Cron. Пример добавления еженедельного задания:
if (!wp_next_scheduled('wpskill_weekly_database_cleanup')) {
wp_schedule_event(time(), 'weekly', 'wpskill_weekly_database_cleanup');
}
add_action('wpskill_weekly_database_cleanup', 'wpskill_database_cleanup');
function wpskill_database_cleanup() {
wpskill_delete_revisions();
wpskill_optimize_database();
}
Это позволит регулярно поддерживать базу в идеальном состоянии без вашего участия.
Выводы и рекомендации
Очистка базы данных от старых ревизий и ненужных записей — важный этап оптимизации WordPress-сайта, который помогает:
- Уменьшить размер базы данных и время резервного копирования;
- Ускорить запросы и загрузку страниц;
- Снизить нагрузку на сервер;
- Поддерживать порядок и стабильность работы сайта.
Для очистки можно использовать как SQL-запросы и собственные функции, так и готовые плагины, например, WP-Optimize или Clearfy Pro. Не забывайте регулярно оптимизировать таблицы после удаления данных и ограничивайте количество ревизий для новых записей.
Внедрив эти рекомендации, вы значительно повысите производительность вашего WordPress-сайта и упростите обслуживание базы данных.