Как удалить неиспользуемые таблицы из базы данных WordPress

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

Почему появляются неиспользуемые таблицы в базе данных WordPress

Когда вы устанавливаете плагины, они часто создают собственные таблицы для хранения данных. При удалении плагина эти таблицы могут остаться, если разработчики не предусмотрели их удаление. Аналогично темы и кастомные решения могут создавать таблицы, которые в итоге оказываются не нужны.

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

Как определить неиспользуемые таблицы в базе данных WordPress

Первый шаг — определить, какие таблицы принадлежат ядру WordPress, а какие добавлены плагинами или темами. По умолчанию WordPress создает таблицы с префиксом, который задается при установке, обычно это wp_. К стандартным таблицам относятся:

  • wp_posts
  • wp_postmeta
  • wp_users
  • wp_usermeta
  • wp_options
  • wp_terms
  • wp_term_taxonomy
  • wp_term_relationships
  • wp_comments
  • wp_commentmeta

Все остальные таблицы с этим же префиксом, но с нестандартными именами — вероятно, созданы плагинами или темами.

Для визуального осмотра можно воспользоваться phpMyAdmin или любым другим инструментом для работы с базой данных. Также рекомендуем использовать SQL-запрос для вывода всех таблиц:

SHOW TABLES LIKE 'wp_%';

Далее необходимо проверить, активны ли плагины, которые могли создать эти таблицы. Если плагин удалён — таблицу можно считать кандидатом на удаление.

Использование плагинов для поиска и удаления неиспользуемых таблиц

Существует несколько плагинов, которые помогут упростить задачу:

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

Пример использования Advanced Database Cleaner:

  1. Установите и активируйте плагин.
  2. Перейдите в меню плагина в админке WordPress.
  3. В разделе «Таблицы базы данных» вы увидите список всех таблиц и их статус.
  4. Выберите неиспользуемые таблицы и нажмите «Удалить».

Важно делать резервную копию базы данных перед удалением таблиц.

Как программно удалить неиспользуемые таблицы в WordPress

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

Ниже пример функции с префиксом wpto_, которая выводит список таблиц, не входящих в стандартный набор WordPress:

function wpto_get_unused_tables() {
    global $wpdb;
    $prefix = $wpdb->prefix;
    $all_tables = $wpdb->get_col("SHOW TABLES LIKE '{$prefix}%'");

    $core_tables = [
        "{$prefix}posts",
        "{$prefix}postmeta",
        "{$prefix}users",
        "{$prefix}usermeta",
        "{$prefix}options",
        "{$prefix}terms",
        "{$prefix}term_taxonomy",
        "{$prefix}term_relationships",
        "{$prefix}comments",
        "{$prefix}commentmeta"
    ];

    $unused = [];
    foreach ($all_tables as $table) {
        if (!in_array($table, $core_tables)) {
            $unused[] = $table;
        }
    }

    return $unused;
}

Функция вернет массив таблиц, которые не относятся к ядру WordPress. Следующим шагом можно добавить удаление таблиц по их названию:

function wpto_delete_table($table_name) {
    global $wpdb;
    $table_name = esc_sql($table_name);
    $wpdb->query("DROP TABLE IF EXISTS {$table_name}");
}
<

Используйте эти функции с осторожностью и только после создания резервной копии базы данных!

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

function wpto_cleanup_unused_tables() {
    $unused_tables = wpto_get_unused_tables();
    foreach ($unused_tables as $table) {
        wpto_delete_table($table);
    }
    return count($unused_tables);
}

Вы можете вызвать wpto_cleanup_unused_tables() в безопасном окружении (например, через WP-CLI или временный плагин) для удаления всех неиспользуемых таблиц.

Как определить, что таблица действительно не используется

Удаление таблиц — рискованная операция, поэтому важно убедиться, что таблица не используется. Вот несколько советов:

  • Проверьте, есть ли активные плагины, которые могли создать таблицу.
  • Посмотрите структуру таблицы и содержимое — если там пусто или есть устаревшие данные, это хороший знак.
  • Выполните поиск по коду темы и плагинов на предмет использования имени таблицы.
  • Если таблица содержит данные, сделайте экспорт для резервной копии.

Если вы не уверены, лучше оставить таблицу или сначала переместить её в отдельную базу для анализа.

Резервное копирование базы данных перед удалением таблиц

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

В случае ошибки вы сможете восстановить данные и избежать потерь.

Заключение

Удаление неиспользуемых таблиц из базы данных WordPress — важный шаг для оптимизации и поддержания производительности сайта. Используйте плагины для упрощения задачи или напишите собственные функции с префиксом wpto_, как показано в примерах. Всегда делайте резервное копирование и тщательно проверяйте, что таблицы действительно не нужны, прежде чем удалять их.

Как оптимизировать процесс загрузки картинок в WordPress
18.11.2025
Как сделать уникальный favicon в WordPress
01.11.2025
Как исправить ошибку WooCommerce «Невозможно создать заказ» при смене способа оплаты
08.05.2026
Как удалить версии WordPress из базы данных и ускорить сайт
25.11.2025
Как создать автоматические отзывы с помощью Expert Review в WordPress
05.02.2026