В процессе эксплуатации WordPress сайта база данных постепенно накапливает множество записей, которые уже не используются или устарели. Это могут быть ревизии записей, авто-сохранения, спам-комментарии, удалённые посты и многое другое. Такие данные занимают место и замедляют работу сайта, особенно при больших объёмах контента. В этой статье мы подробно разберём, как эффективно выявлять и удалять неиспользуемые записи в базе данных WordPress, чтобы оптимизировать скорость и стабильность вашего сайта.
Почему важно удалять неиспользуемые записи в WordPress
Со временем WordPress создаёт множество дополнительных записей для обеспечения функционала. Например, каждая правка поста сохраняется как ревизия, чтобы при необходимости можно было откатиться к предыдущей версии. Автосохранения защищают контент от потери при сбоях. Комментарии могут попадать в спам или быть удалены, но записи в базе остаются. Все эти данные накапливаются и увеличивают размер базы данных, что приводит к следующим проблемам:
- Увеличение времени выполнения запросов к базе данных;
- Занятие дискового пространства на сервере;
- Усложнение резервного копирования;
- Повышенная нагрузка на сервер при обработке запросов;
- Снижение производительности панели администратора.
Удаление неиспользуемых записей помогает минимизировать эти проблемы и ускорить работу сайта.
Какие типы записей можно безопасно удалить
Перед удалением важно понимать, какие именно записи считаются неиспользуемыми и могут быть удалены без вреда для сайта. К таким относятся:
Ревизии постов и страниц
WordPress по умолчанию сохраняет все изменения постов и страниц в виде ревизий. При большом количестве публикаций база может содержать тысячи ревизий, которые редко когда нужны. Удаление ревизий позволяет значительно снизить размер таблицы wp_posts.
Автосохранения
Автоматические сохранения контента, которые WordPress делает каждые несколько минут во время редактирования, также остаются в базе. После публикации или обновления эти данные уже не нужны.
Удалённые записи (Trash)
Когда вы удаляете пост или страницу, они помещаются в корзину (Trash) и продолжают занимать место, пока корзина не будет очищена.
Спам и мусорные комментарии
Комментарии, помеченные как спам, и мусорные комментарии можно безопасно удалить — они не влияют на функционал сайта.
Методы удаления неиспользуемых записей
Рассмотрим несколько способов удаления неиспользуемых записей, от плагинов до пользовательских SQL-запросов и PHP-кода.
Использование плагинов для очистки базы данных
Самый простой способ — это плагины, которые автоматизируют процесс очистки и оптимизации базы данных:
- Clearfy Pro — хорошо подходит для удаления ревизий, автосохранений, мусора и оптимизации БД. Подробнее о Clearfy Pro
- WP-Optimize — популярный бесплатный плагин, который удаляет ревизии, спам, мусорные комментарии и оптимизирует таблицы базы данных.
- Advanced Database Cleaner — позволяет выбрать конкретные типы неиспользуемых записей для удаления и планировать очистку.
Эти плагины удобны тем, что не требуют навыков программирования и минимизируют риск ошибок.
Удаление через SQL-запросы
Если необходим более точечный контроль, можно выполнять очистку напрямую через базу данных с помощью SQL:
-- Удаление ревизий
DELETE FROM wp_posts WHERE post_type = 'revision';
-- Удаление автосохранений
DELETE FROM wp_posts WHERE post_type = 'autosave';
-- Очистка корзины (Удалённые записи)
DELETE FROM wp_posts WHERE post_status = 'trash';
-- Удаление спам-комментариев
DELETE FROM wp_comments WHERE comment_approved = 'spam';
-- Удаление мусорных комментариев
DELETE FROM wp_comments WHERE comment_approved = 'trash';
Важно перед выполнением таких запросов сделать резервную копию базы данных, чтобы избежать потери важных данных.
Автоматизация удаления ревизий с помощью PHP-кода
Для автоматической очистки ревизий при сохранении новых записей можно добавить следующий код в файл functions.php вашей темы или в отдельный плагин:
function wpclean_ru_delete_post_revisions($post_id) {
global $wpdb;
// Удаляем все ревизии, кроме текущей
$wpdb->query($wpdb->prepare(
"DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_parent = %d",
$post_id
));
}
add_action('save_post', 'wpclean_ru_delete_post_revisions');
Этот код удаляет все ревизии конкретного поста при сохранении, что позволяет автоматически поддерживать базу в чистоте.
Дополнительные советы по оптимизации базы данных
Удаление неиспользуемых записей — важный шаг, но для полной оптимизации базы данных стоит учитывать и другие моменты:
- Регулярно оптимизируйте таблицы базы данных через phpMyAdmin или с помощью плагинов, например, Clearfy Pro или WP-Optimize.
- Ограничьте количество ревизий с помощью добавления в
wp-config.phpстрокиdefine('WP_POST_REVISIONS', 3);— это сохранит максимум 3 ревизии для каждого поста. - Планируйте регулярную очистку базы данных с помощью WP-Cron или внешних задач, чтобы поддерживать сайт в оптимальном состоянии.
- Используйте плагины кэширования и CDN для снижения нагрузки на сервер.
Выводы и рекомендации
Удаление неиспользуемых записей в базе данных WordPress — это эффективный способ оптимизировать производительность сайта, уменьшить размер базы и ускорить работу панели администратора. Используйте проверенные плагины для автоматизации, либо аккуратно выполняйте удаление через SQL или PHP, обязательно делая резервные копии. Комбинируйте эти методы с общей оптимизацией сайта, и вы получите стабильный и быстрый WordPress-сайт.