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

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

9 октября 2017 2

Со временем в базе данных Вордпресс накапливается много лишней информации. Объём которой часто достигает таких размеров, что сайт начинает спотыкаться и может даже упасть. Сегодня я покажу несколько приёмов по очистке и оптимизации БД Вордпресс.

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

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

Для Вордпресс существует несколько различных способов оптимизации БД, я покажу несколько полезных запросов MySQL, которые можно выполнить в phpMyAdmin, например. А также расскажу про пару полезных плагинов, которые помогут упростить задачу.

Внимание: Перед любым действием с базой данной, настоятельно рекомендую создать полную резервную копию сайта.

Оптимизация базы данных Вордпресс с помощью phpMyAdmin

Существует несколько способов выполнения SQL-запросов в БД. Самым простым вариантом является phpMyAdmin. Получить к нему доступ обычно можно в панели управления хостингом в разделе «Базы данных».

Внутри phphMyAdmin сразу переходим в раздел SQL.

phpMyAdmin

Здесь мы и будем выполнять все SQL-запросы.

Сразу обращаю внимание, в примерах ниже используется дефолтный префикс таблиц Вордпресс — «wp_» Поэтому, прежде убедитесь, что префиксы таблиц вашей БД такие же. Если нет — просто меняйте их в запросах на свои.

Удалить старые плагины и данные

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


DELETE FROM wp_postmeta WHERE meta_key = 'META-KEY-NAME';

Вместо META-KEY-NAME нужно указать ключи удаляемых плагинов. Их можно найти в таблицах БД.

Удалить все ревизии

Ревизии в Вордпресс очень полезная функция. Но если авторы активно ей пользуются, в БД сохраняется очень много копий постов, которые хранятся и после его публикации.

Удалить разом все ревизии можно таким запросом:


DELETE a,b,c
 FROM wp_posts a
 LEFT JOIN wp_term_relationships b ON ( a.ID = b.object_id)
 LEFT JOIN wp_postmeta c ON ( a.ID = c.post_id )
 LEFT JOIN wp_term_taxonomy d ON ( b.term_taxonomy_id = d.term_taxonomy_id)
 WHERE a.post_type = 'revision'
 AND d.taxonomy != 'link_category';

Удалить все комментарии со спамом

Иногда комментариев со спамом становится столько, что вручную их удалить уже не удаётся. С помощью одного SQL-запроса можно удалить сразу все комментарии помеченные как «Спам».


DELETE FROM wp_comments WHERE comment_approved = 'spam';

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

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


DELETE from wp_comments WHERE comment_approved = '0';

Удалить все неиспользуемые теги

Удалить все теги, которые не связаны ни с одним постом можно следующим запросом:


DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

Удалить старые шорткоды

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


UPDATE wp_post SET post_content = replace(post_content, '[YOUR-SHORTCODE]', '' ) ;

Где YOUR-SHORTCODE — удаляемый шорткод.

Удалить пингбеки и трекбеки

Интересно, кто-нибудь вообще ими пользуется?

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


DELETE FROM wp_comments WHERE comment_type = 'pingback';
DELETE FROM wp_comments WHERE comment_type = 'trackback';

Удалить временные опции

Временные опции в Вордпресс позволяют кешировать часть данных в БД. Но иногда этот кеш тоже может сильно раздуться. Очистить его можно одним запросом.


DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%')

Оптимизировать таблицы

Раз уж мы зашли в phpMyAdmin, можно заодно проверить и оптимизировать таблицы. Делается это очень просто.

Выбираем все таблицы и нажимаем «Optimize table»

Оптимизировать таблицы в phpMyAdmin

Оптимизация базы данных Вордпресс с помощью плагинов

Для Вордпресс существует ряд плагинов, с помощью которых можно почистить и оптимизировать базу данных. Самые эффективные из них: WP-Optimize и WP-Sweep.

WP-Optimize

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

WP-Optimize

В разделе «Table Information» выводится информация по текущим размерам таблиц базы данных и объем, который плагин сможет освободить. В «Настройках» можно запланировать автоматическую оптимизацию БД. Например, каждую неделю, две недели или месяц.

Плагин WP-Optimize очень прост в использовании. Главное, не забудьте перед его использованием создать резервную копию сайта или хотя бы БД.

Скачать

WP-Sweep

Набирающий обороты плагин от Лестера Чена — известного разработчика Вордпресс.

WP-Sweep

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

В отличие от WP-Optimize, WP-Sweet для удаления использует функции Вордпресс, а не прямые запросы к базе данных. Это снижает вероятность пропуска каких-то ненужных данных. Однако, в WP-Sweep пока нет никакой автоматизации процессов.

Скачать

В заключение

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

По материалам wp-rocket.me

Подписываемся на канал Danilin.biz в Telegram, все самое интересное теперь там.
Иван Данилин
Автор: Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе Вордпресс.

Комментарии
  1. Иван, при нажатии на кнопку Подписаться (Твиттер) выдает ошибку.

Добавить комментарий

Услуги фрилансеров по фиксированной цене — 500 р.