WPExperts

Оптимизация базы данных WordPress: удаляем старые ревизии и чистим базу

Каждый опытный разработчик WordPress знает, что со временем база данных сайта разрастается и накапливает много мусора: старые ревизии постов, автосохранения, удалённые комментарии, транзиенты и многое другое. Всё это может замедлять работу сайта и увеличивать время отклика. В этой статье мы подробно разберём, как оптимизировать базу данных WordPress, удаляя старые ревизии и очищая ненужные данные, используя как готовые плагины, так и собственные скрипты.

Что такое ревизии в WordPress и почему их стоит удалять

Ревизии — это автоматические и ручные сохранения изменений в записях и страницах. Они очень полезны для восстановления предыдущих версий контента, но со временем их количество может исчисляться сотнями и даже тысячами. Каждая ревизия — это отдельная запись в таблице wp_posts с типом revision. Чем больше ревизий, тем больше размер базы данных, тем медленнее выполняются запросы.

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

Как ограничить количество ревизий в WordPress

Для ограничения количества ревизий добавьте в файл wp-config.php следующую строку:

define('WP_POST_REVISIONS', 3);

Здесь число 3 означает, что будут храниться только три последние ревизии для каждой записи. Это простое решение, чтобы контролировать рост базы.

Удаление старых ревизий с помощью плагинов

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

Плагин WP-Optimize

WP-Optimize — это мощный инструмент для очистки и оптимизации базы данных. Он позволяет удалять ревизии, удалённые записи, спам-комментарии и прочие ненужные данные. Также плагин умеет запускать оптимизацию таблиц базы данных.

Чтобы удалить ревизии и очистить базу через WP-Optimize:

  1. Установите и активируйте плагин через репозиторий WordPress.
  2. Перейдите в раздел WP-Optimize → Database.
  3. Выберите опции удаления ревизий, автосохранений, спама и т.п.
  4. Нажмите кнопку «Run all selected optimizations».

Плагин Advanced Database Cleaner

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

Удаление ревизий и очистка базы с помощью пользовательского кода

Для тех, кто хочет иметь полный контроль и автоматизировать процесс, можно написать собственные функции на PHP, которые будут удалять старые ревизии и оптимизировать таблицы.

Пример функции для удаления старых ревизий (wpexperts_delete_old_revisions)

Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wpexperts_delete_old_revisions() {
    global $wpdb;
    // Удаляем все ревизии из базы
    $deleted = $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");

    // Оптимизируем таблицу posts для освобождения места
    $wpdb->query("OPTIMIZE TABLE {$wpdb->posts}");

    return $deleted;
}

После добавления функции вызовите её один раз, например, из админки или через wp-cli, чтобы очистить ревизии.

Автоматический запуск очистки с помощью wp-cron

Чтобы не делать очистку вручную, можно настроить регулярное выполнение функции с помощью встроенного планировщика WordPress:

function wpexperts_schedule_revision_cleanup() {
    if (!wp_next_scheduled('wpexperts_revision_cleanup_hook')) {
        wp_schedule_event(time(), 'weekly', 'wpexperts_revision_cleanup_hook');
    }
}
add_action('wp', 'wpexperts_schedule_revision_cleanup');

add_action('wpexperts_revision_cleanup_hook', 'wpexperts_delete_old_revisions');

Этот код настроит еженедельную очистку ревизий, что поможет поддерживать базу в оптимальном состоянии.

Дополнительные советы по оптимизации базы данных WordPress

Помимо удаления ревизий, есть и другие приёмы для поддержания базы данных в порядке:

  • Удаление удалённых записей и комментариев. WordPress не удаляет их сразу, а помещает в корзину. Очистка корзины освобождает место.
  • Очистка транзиентов. Временные данные, которые могут устаревать и занимать место. Плагины типа WP-Optimize автоматически очищают их.
  • Оптимизация таблиц базы данных. Команда OPTIMIZE TABLE восстанавливает индекс и освобождает неиспользуемое пространство.
  • Использование плагинов кеширования. Они снижают нагрузку на базу, уменьшая число запросов.

Регулярное выполнение этих действий поможет избежать замедления сайта и проблем с производительностью.

Заключение

Оптимизация базы данных — обязательный этап в обслуживании любого WordPress-сайта. Удаление старых ревизий и очистка от мусора значительно повышают скорость и стабильность работы. Используйте готовые плагины для удобства или собственные скрипты для гибкости и автоматизации. Настройте регулярное обслуживание базы, чтобы ваш сайт всегда работал быстро и без сбоев.

×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »