wpclean.ru wordpress WPClean.ru

Оптимизация базы данных WordPress: удаление журналов и транзакций

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

Почему важно оптимизировать базу данных WordPress

WordPress использует MySQL или MariaDB для хранения контента, настроек и пользовательских данных. В процессе работы в таблицах накапливаются:

  • Автосохранения и ревизии постов
  • Транзиенты – временные кэшированные данные
  • Логи плагинов и системные журналы
  • Комментарии со спамом и удаленные
  • История изменений и другие метаданные

Все эти данные существенно увеличивают размер базы и замедляют выполнение запросов. Регулярная оптимизация помогает ускорить сайт, уменьшить нагрузку на сервер и снизить время отклика.

Удаление ревизий и автосохранений WordPress

Ревизии сохраняются для каждого изменения поста, позволяя откатиться к предыдущей версии, но долгое хранение всех версий не всегда оправдано. Чтобы удалить все ревизии, можно использовать SQL-запрос:

DELETE FROM wp_posts WHERE post_type = 'revision';

Также можно ограничить их создание, добавив в wp-config.php строку:

define('WP_POST_REVISIONS', 5); // хранить только 5 ревизий

Для автоматизации очистки ревизий можно использовать плагин WP-Optimize или Advanced Database Cleaner, которые позволяют удалять ревизии, автосохранения и оптимизировать таблицы в один клик.

Удаление устаревших транзиентов

Транзиенты — это временные данные, которые обычно автоматически удаляются по истечении срока действия. Однако иногда они остаются в базе и занимают место.

Для очистки можно использовать следующий SQL-запрос:

DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';

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

Удаление спама и мусорных комментариев

Комментарии со статусом «спам» и «удалённые» также накапливаются и грузят базу данных.

Удалить их можно через админку WordPress на вкладке «Комментарии», либо с помощью SQL:

DELETE FROM wp_comments WHERE comment_approved = 'spam'; DELETE FROM wp_comments WHERE comment_approved = 'trash';

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

Оптимизация таблиц базы данных

MySQL таблицы со временем фрагментируются, что приводит к снижению скорости чтения и записи. Оптимизировать таблицы можно с помощью SQL-команды:

OPTIMIZE TABLE wp_posts, wp_comments, wp_options;

Для всех таблиц можно написать скрипт, который переберёт все префиксы:

SHOW TABLES LIKE 'wp_%';

И оптимизирует каждую таблицу. Плагины, такие как WP-DBManager и WP-Optimize, предлагают эту функцию в интерфейсе.

Пример кастомной функции для автоматической очистки базы данных

Для автоматизации очистки можно добавить в functions.php вашей темы следующий код, который будет удалять ревизии и устаревшие транзиенты по расписанию:

function wpclean_optimize_database() {
    global $wpdb;
    // Удаление ревизий
    $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");

    // Удаление устаревших транзиентов
    $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%'");
}

if (!wp_next_scheduled('wpclean_daily_db_cleanup')) {
    wp_schedule_event(time(), 'daily', 'wpclean_daily_db_cleanup');
}
add_action('wpclean_daily_db_cleanup', 'wpclean_optimize_database');

Этот код создает ежедневное задание, которое будет очищать базу без вашего участия.

Рекомендации по регулярной оптимизации базы WordPress

Чтобы поддерживать базу данных в хорошем состоянии, придерживайтесь следующих практик:

  • Ограничивайте количество ревизий, через WP_POST_REVISIONS.
  • Регулярно очищайте транзиенты и комментарии.
  • Оптимизируйте таблицы еженедельно или ежемесячно.
  • Используйте проверенные плагины для автоматизации процессов.
  • Делайте резервные копии перед изменениями базы.

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее