Большие базы данных WordPress замедляют работу сайта и усложняют резервное копирование и восстановление. Но просто удалить все подряд — рискованно: можно потерять важные данные. В этой статье разберем, как уменьшить размер базы данных WordPress безопасно и эффективно, используя как готовые плагины, так и собственные SQL-запросы и функции.
Причины роста базы данных WordPress
В WordPress база данных со временем увеличивается по нескольким причинам:
- Сохранённые ревизии записей и страниц
- Автоматически созданные черновики и мусор
- Транзиенты, которые не удаляются по сроку
- Логи плагинов и темы
- Комментарии в статусе «спам» и «корзина»
- Неиспользуемые метаданные и опции
Понимание источников роста поможет сфокусироваться на конкретных таблицах и данных, которые можно почистить без вреда.
Использование плагинов для безопасной оптимизации базы данных
Для большинства пользователей проще и безопаснее использовать проверенные плагины. Вот несколько популярных решений:
- WP-Optimize — комплексное решение для очистки базы, удаления мусора, оптимизации таблиц и сжатия изображений. Позволяет настроить автоматическую очистку.
- Advanced Database Cleaner — мощный инструмент, который удаляет ревизии, черновики, спам, транзиенты и устаревшие опции. Есть детальный анализ таблиц.
- Clearfy Pro — не только ускоряет WordPress, но и содержит функции для очистки базы и оптимизации запросов.
Все эти плагины можно скачать на wpshop.ru.
Ручная оптимизация базы данных с помощью SQL-запросов
Для разработчиков и опытных пользователей полезно уметь чистить базу вручную. Ниже приведены примеры SQL-запросов, которые уменьшают размер без потери нужных данных.
Удаление старых ревизий записей
Ревизии помогают откатиться к предыдущей версии, но со временем их накапливается много. Удалим все ревизии, кроме последних 3 для каждой записи:
DELETE FROM wp_posts WHERE post_type = 'revision' AND ID NOT IN (SELECT ID FROM (SELECT ID FROM wp_posts WHERE post_type = 'revision' ORDER BY post_modified DESC LIMIT 3) AS t);Этот запрос оставляет последние 3 ревизии. Если хотите оставить меньше, поменяйте LIMIT.
Удаление мусорных комментариев и спама
DELETE FROM wp_comments WHERE comment_approved = 'spam'; DELETE FROM wp_comments WHERE comment_approved = 'trash';Так удаляются все комментарии, помеченные как спам или удалённые.
Очистка устаревших транзиентов
Транзиенты — временные данные, которые иногда остаются в базе после истечения срока. Для их удаления:
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' AND option_value < NOW();Важно: в некоторых версиях WordPress транзиенты хранятся по-разному, поэтому полезно использовать плагин для очистки.
Создание собственной функции очистки базы данных
Иногда удобно интегрировать очистку базы в функционал сайта. Ниже пример функции для удаления ревизий и мусорных комментариев по расписанию.
function wpspeed_cleanup_database() { global $wpdb; // Удаляем ревизии $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'"); // Удаляем спам и корзину $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_approved = 'spam' OR comment_approved = 'trash'"); // Оптимизируем таблицы $tables = [ $wpdb->posts, $wpdb->comments, $wpdb->postmeta, $wpdb->options ]; foreach ($tables as $table) { $wpdb->query("OPTIMIZE TABLE {$table}"); } } add_action('wp_scheduled_cleanup_hook', 'wpspeed_cleanup_database'); // Планируем задачу, если ещё нет if (!wp_next_scheduled('wp_scheduled_cleanup_hook')) { wp_schedule_event(time(), 'weekly', 'wp_scheduled_cleanup_hook'); }Эта функция удалит все ревизии (можно доработать, чтобы оставить несколько последних), очистит комментарии и оптимизирует таблицы. Запускается раз в неделю через планировщик WP-Cron.
Дополнительные советы по уменьшению размера базы данных
Ограничение числа ревизий с помощью константы в wp-config.php
Чтобы база не разрасталась, установите лимит на количество ревизий:
define('WP_POST_REVISIONS', 3);Это ограничит число сохраняемых ревизий до 3, что уменьшит накопление ненужных данных.
Оптимизация таблиц базы данных
После очистки полезно оптимизировать таблицы для освобождения места и повышения скорости:
OPTIMIZE TABLE wp_posts; OPTIMIZE TABLE wp_comments; OPTIMIZE TABLE wp_postmeta; OPTIMIZE TABLE wp_options;Это можно выполнить через phpMyAdmin или средствами плагинов.
Удаление неиспользуемых плагинов и тем
Многие плагины и темы создают свои таблицы и записи в базе. Если вы их не используете — удалите, чтобы не захламлять базу. Используйте для этого плагин Clearfy Pro с функциями удаления данных после деактивации плагинов.
Использование плагина Clearfy Pro для тонкой настройки базы данных
Clearfy Pro позволяет не только ускорить сайт, но и аккуратно очистить базу данных от мусорных данных, удалять временные и устаревшие параметры, а также оптимизировать запросы. Он удобен для тех, кто хочет получить максимум без технических настроек и ручного кода.
На wpshop.ru вы можете скачать Clearfy Pro и ознакомиться с его возможностями.
Выводы и рекомендации
Уменьшение размера базы данных — важный этап оптимизации WordPress. Рекомендуется сочетать автоматические инструменты и ручную работу с базой. Не забывайте всегда делать резервные копии перед очисткой. Используйте лимиты на ревизии и регулярно проверяйте базу на мусор.
Такой подход обеспечит стабильную и быструю работу сайта без риска потерять важные данные.