Сайт о телевидении

Сайт о телевидении

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

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

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


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

Навигация по странице:

Зачем чистить базу данных в WordPress?

Что бы понять смысл очистки базы данных нужно разобраться что в ней находиться. А находятся в нашей базе данных все наши настройки, посты, комментарии, мета данные, копии и редакции статей. На картинке ниже показаны основные (стандартные) таблицы в базе данных WordPress.

Как видим мы имеем 13 таблиц, предназначенных для разных целей. Практически каждая из этих таблиц могут содержать «мусорные» данные, которые замедляют загрузку наших страниц. Как это происходит? Все дело в том, что при «создании» любой страницы каждый элемент загружается из базы данных. Ищутся они по ключам к примеру по id, и чем больше у нас записей в каждой из таблиц, тем больше программе приходиться перебирать данных для поиска нужных нам в данный момент.

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

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

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

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

Как очистить базу данных WordPress?

Для очистки базы данных от ненужных строк существует два способа:

  • ручная очистка ;
  • очистка с помощью плагинов .

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

Для второго метода очистки нам потребуется соответственный который поможет нам в решении данной проблемы. Таких плагинов существует огромное количество и отличаются они в основном авторами, рейтингом и внешним видом. В данной статье мы рассмотрим использование плагина WP Clean Up, который без особого труда справится с поставленной задачей. К тому же, плагины данного типа используются не постоянно. Это означает что после использования плагина его можно деактивировать или же удалить вовсе, иными словами использование плагина не повлечет за собой торможение загрузки.

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

После того как мы зашли в требуемое место вводим в форму требуемые запросы:

  1. Для того что бы очистить копии(ревизии) наших записей требуется ввести следующую строчку: DELETE FROM wp_posts WHERE post_type = ‘revision’; что будет означать «Удалить все ревизии в таблице пост».
  2. Для очистки спама в комментариях потребуется следующая строчка: DELETE FROM wp_comments WHERE comment_approved = ‘spam’;
  3. Очистить кеш от RSS блога: DELETE FROM wp_options WHERE option_name LIKE (’_transient%_feed_%’);

После ввода необходимой строчки нажимаем на кнопку «ОК».

После чего еще раз подтверждаем наше действие.

При успешном выполнении запроса, наш Mysql сообщит нам результат проделанной работы, и сколько строк у нас получилось очистить.

Такие же действия повторяем для других таблиц.

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

Очистка базы данных от мусора с помощью плагина

Как я уже упоминал ранее нам потребуется скачать и установить плагин WP Clean Up. Чем мы не посредственно сперва и займемся. Как установить плагин можно прочитать отдельно.

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


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

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

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

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

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

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

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

Здесь мы и будем выполнять все 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 - удаляемый шорткод.

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

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

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

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 »

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

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

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

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

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

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

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

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

В заключение

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

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

Всё самое новое и интересное из мира Вордпресс в моём Телеграм-канале . Подписываемся!

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

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

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

Перед началом работы сделайте бэкап. Если что-то пойдет не так, вы сможете восстановить бд из бэкапа.

Удалите неиспользуемые плагины . Удалите все плагины, которые вы не используете. Остатки от удаленных плагинов — один из источников мусора.

Как делать SQL запросы к базе данных

Для администрирования БД обычно используется приложение phpMyAdmin, которое запускается из хостинг панели. Найдите «База данных», «Database», «MySQL» или что-нибудь подобное. Откройте нужную базу данных.

Если вы забыли или не знаете название, логин или пароль к своей базе данных, то их можно узнать в файле wp-config.php , который находится в корневой папке сайта. Записи о БД находятся в самом начале файла.

Если у вас русский язык:

Если у вас английский язык:

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

Запросы создаются на вкладке SQL. Документация .

Делайте запросы здесь. Когда запрос готов, нажимайте Вперед.

Если вы получили ответ, что 0 таблиц было изменено, значит, текущее состояние параметра соответствует запросу.

ЗАПРОСЫ

Используйте эти SQL запросы для очистки базы данных.

Удаление данных от удаленных плагинов и данные постов

После удаления ненужных плагинов в таблице wp_postmeta могут остаться записи от них. В этой же таблице находятся мета данные постов.

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

DELETE FROM wp_postmeta WHERE meta_key = ‘ваш-мета-ключ ‘;

Замените ваш-мета-ключ на нужное значение.

Для мультисайта:

DELETE FROM wp_#_postmeta WHERE meta_key = ‘ваш-мета-ключ ‘;

Измените # на ID сайта и ваш-мета-ключ на нужное значение.

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

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

spam ‘;

Для мультисайта:

spam ‘;

Измените # на ID сайта.

Удаление комментариев, ожидающих проверки

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

DELETE FROM wp_comments WHERE comment_approved = ‘0 ‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_approved = ‘0 ‘;

Измените # на ID сайта.

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

Если у вас есть тег, который не связаны ни с одной статьей, удалите его этим запросом:

DELETE FROM wp_terms wt

Для мультисайта:

DELETE FROM wp_#_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = ‘post_tag’ AND wtt.count = 0;

Измените # на ID сайта.

Удаление Trackback и Pingback

Если вы выключили эти функции и хотите удалить их записи из базы данных, используйте эти запросы:

Trackback

trackback ‘;

Для мультисайта:

trackback ‘;

Измените # на ID сайта.

Pingback

DELETE FROM wp_comments WHERE comment_type = ‘pingback ‘;

Для мультисайта:

DELETE FROM wp_#_comments WHERE comment_type = ‘pingback ‘;

Измените # на ID сайта.

Выключить эти функции в WordPress можно в Настройках -> Обсуждения.

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

Сохраненные версии постов хранятся в базе данных. Если у вас большой сайт, большое количество ревизий сильно увеличивает ее размер. Чтобы удалить их все используйте это запрос:

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta с ON (a.ID = c.post_id)
LEFT JOIN wp_term_taxonomy d ON (b.term_taxonomy_id = d.term_taxonomy_id)

Для мультисайта:

DELETE a,b,c FROM wp_#_posts a
LEFT JOIN wp_#_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_#_postmeta с 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’

Замените # на ID сайта.

Удаление шорткодов плагинов и тем

Если вы пользовались каким-то плагином, который вставляет шорткоды, или вы сменили тему, в которой были встроены шорткоды, то теперь шорткоды появятся на сайте в виде текста. Чтобы удалить все записи о шорткодах из базы данных, сделайте этот запрос:

UPDATE wp_post SET post_content = replace(post_content, ‘[ваш-шорткод] ‘, »);

Для мультисайта:

UPDATE wp_#_post SET post_content = replace(post_content, ‘[ваш-шорткод] ‘, »);

Измените # на ID сайта.

Удаление постов старше Х дней

Если вы хотите удалить посты старше Х дней, используйте этот запрос:

DELETE FROM ‘wp_posts’
WHERE ‘post_type’ = ‘post’
AND DATEDIFF(NOW(),’post_date’) > X-дней

Замените X-дней на нужное число дней.

Для мультисайта:

DELETE FROM ‘wp_#_posts’
WHERE ‘post_type’ = ‘post’
AND DATEDIFF(NOW(),’post_date’) > X-дней

Измените # и X-дней .

Удаление других комментариев

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

SELECT FROM wp_commentsmeta WHERE comment_id
NOT IN (
SELECT comment_id
FROM wp_comments
);

Если вы хотите очистить таблицу wp_commentsmeta на другом сайте в сети, используйте этот запрос:

SELECT FROM wp_#_commentsmeta WHERE comment_id
NOT IN (
SELECT comment_id
FROM wp_#_comments
);

Замените # на ID сайта.

База данных свежей установки Вордпресс 4.9.8 для сравнения

Оптимизация таблиц

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

В phpMyAdmin выберите нужную базу данных, спуститесь вниз, нажмите Отметить все и выберите в выпадающем меню. Нажимать «Вперед» не нужно, оптимизация начнется автоматически.

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

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

Плагины WordPress для оптимизации базы данных

4 лучших плагина оптимизации базы данных в порядке увеличения функционала.

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

WP Sweep

Надеюсь, статья была полезна. Оставляйте комментарии.