Как очистить и оптимизировать Базу данных WordPress. Удалить остатки удалённых плагинов wordpress

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

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

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

Ревизии в WordPress позволяют избежать потери данных за счет того, что все предыдущие версии записей не удаляются из базе данных, а лишь получают другой статус — «revision »

В слове “все” предыдущего абзаца как раз и кроется причина неограниченного роста размера базы данных. Каждая редакция (ревизия) записи содержит ее полное содержание. А это значит, что если в процессе подготовки какой-либо статьи вы исправили и перезаписали ее, скажем, 10 раз, то в базе данных будет сохранено 10 копий. Если вы исправите всего один знак, в базу еще раз добавится текст целиком.

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

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

Управление количеством ревизий записей в WordPress

Для управления механизмом сохранения редакций записей в WordPress в файл конфигурации “wp-config.php ” после:
/** The Database Collate type. Don"t change this if in doubt. */
define("DB_COLLATE", ""); необходимо добавить всего лишь одну запись.
Для ограничения количества редакций тремя экземплярами:
define("WP_POST_REVISIONS", 3); Вместо “3” может быть любое нужное вам значение. “0” отключит сохранение ревизий. Такой же результат будет достигнут, если вместо цифры написать “false”:
define("WP_POST_REVISIONS", false);
Если по какой-либо причине нужно вновь разрешить сохранение всех редакций без удаления данной строки из “wp-config.php ”, то можно написать:
define("WP_POST_REVISIONS", true);

Тип ревизий записей в WordPress

В свою очередь редакции делятся на две категории:

  1. редакторские ревизии — предыдущие версии текстов, появившиеся после публикации или сохранения редактором (автором) обновленной записи;
  2. автосохраненные ревизии — автоматически создаются через определенные временные интервалы.

Как интересно. Пока писал этот пост заметил интересную особенность. Если запись находится в статусе «Черновик», то автосохраненные редакции у нее отсутствуют. Выходит, что на черновик автосохранение не распространяется. Стало быть, забывать нажимать на «Сохранить» при работе с черновиком в редакторе WordPress не стоит.

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

Автосохранение позволяет не потерять недавно набранные данные в том случае, если автор забыл сохранить их принудительно (получается, что на черновик это не распространяется).

Изменить интервал автосохранения можно добавив в файле конфигурации WordPress “wp-config.php ” строку:
define("AUTOSAVE_INTERVAL", 60); где 60 – интервал в секундах, соответствующий установленному по умолчанию. Его можно скорректировать в любую нужную сторону.

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

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

Заходим в phpMyAdmin и выбираем нужную базу в левом столбце интерфейса. Начинаем, естественно, с .

Бекап базы данных

Переходим на вкладку “Экспорт”:

В открывшемся окне оставляем настройки без изменений. Нажимаем “ОК” в правой нижней части экрана и ждем завершения операции сохранения бекапа базы данных.

Запросы к базе данных на удаление ревизий и оптимизацию таблицы wp_posts

Переходим на вкладку “SQL”. В поле запросов к базе данных пишем:
DELETE FROM wp_posts WHERE post_type = "revision";
OPTIMIZE TABLE wp_posts;

Нажимаем “OK”, подтверждаем желание выполнить запросы к базе.

После успешного завершения запросов должно появиться сообщение такого вида:

При желании можно писать и выполнять запросы последовательно.

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

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

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

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

А что касается моей проблемы, то поработав над "пациентом" около дня, удалось уменьшить размер папки uploads с 1200МБ до 150МБ и все за счет удаления ненужных и оптимизации нужных картинок. Так что и вы будьте бдительны, не пускайте файлы на самотек, если только у вас не бесплатный хостинг.

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

О плагине Media Cleaner

Media Cleaner - помогает почистить директорию загрузок (uploads) и библиотеку медиафайлов.

Что конкретно делает плагин? Плагин проверяет действительно ли:

    физический файл прикреплен к медиатеке

    медиафайл используется в записи

    медиафайл используется в произвольном поле записи

    медиафайл используется в WordPress галерее записей

  • у ретина медиафайла (под ретина экран) есть обычный файл (файл без @2x)

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

Какие пункты нужно проверять устанавливается в настройках плагина.

Использование плагина

Опишу коротко, как плагин работает:

После активации плагина, заходим в настройки плагина (появится меню) и отмечаем как мы хотим сканировать файлы:


Media Cleaner настройки сканирования

Затем идем на страницу Медиафайлы > Cleaner и запускаем сканирование - кнопка "Scan". После сканирования нужно обновить страницу и вы увидите найденные файлы:

Необходимые на сайте файлы, нужно пометить как игнорируемые: выделите файлы галочкой и нажать кнопку "Ignore". Все остальные файлы, которые не нужны на сайте, можно переместить в корзину (trash): выделите ненужные файлы галочкой и нажмите "Delete" или нажмите "Delete All", тогда все найденные файлы будут перемещены в корзину.

Заметка: при перемещении в корзину плагин создает новую папку: /uploads/wpmc-trash и удаляемые файлы перемещаются туда. Структура год/меся/название файла сохраняются. Тип файлов MEDIA (файлы, которые присутствуют в медиатеке) удаляются из медиатеки, а физические файлы перемещаются в папку корзины "wpmc-trash".

Чтобы полностью удалить файлы с диска (с сервера), нужно перейти в корзину, раздел Trash и использовать кнопки: "Delete" (удалит выбранные файлы) или "Empty Trash" (удалит все файлы корзины).

В этом же разделе можно восстановить файлы выбрав. Для этого используйте кнопки "Recover" (восстанавливает выбранные файлы) и "Recover All" (восстанавливает все файлы корзины).

Заметка: удаленные MEDIA файлы восстанавливается только физически, т.е. файл будет восстановлен в каталог uploads из которого был удален, но в медиатеке он уже не появится.

Имейте ввиду, перед использованием. Плагин выделяет файлы, которые не нашел в медиатеке, или в контенте записи, или в произвольных полях записи, или в галереях. Эти проверки могут не учитывать другие моменты, например если, загруженные в медиатеку или напрямую в каталог uploads файлы использоваться. Если вы загружаете и используете файлы нестандартно, например, картинки для рубрик вы загружаете в медиатеку и не используете их в записях, но эти файлы используются в шаблоне как картинки к рубрикам. Такие файлы, плагин сочтет ненужными. Поэтому, прежде чем удалять файлы с диска, убедитесь, что выбранные для удаления файлы не используются на сайте.

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

Заметка: после удаления (деинсталяции), плагин не удаляет папку кеша (wpmc-trash) в каталоге uploads. Поэтому, возможно эту папку нужно будет удалить вручную.

Ошибки в плагине

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

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

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

Давайте же рассмотрим способы «очистки» вашей базы данных WordPress.

Перед началом сделайте бекап!

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

Вычищаем свою БД WordPress с помощью WP-Sweep

Первым делом вам необходимо будет установить и активировать плагин WP-Sweep plugin . После активации просто переходим в раздел Инструменты » Sweep для очистки своей БД.

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

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

Очистка может занять некоторое время в зависимости от того, насколько велика ваша БД. WP-Sweep отобразит прогресс путем обновления статистики на странице.

Преимущества WP-Sweep перед WP-Optimize?

Возможно вы удивились, почему мы пишем о WP-Sweep, когда есть другой очень популярный плагин WP-Optimize, выполняющий по сути те же самые функции.

Также основной отличительной характеристикой является то, что WP-Sweep использует корректные функции удаления WordPress настолько, насколько это возможно вместо прямого выполнения MySQL запросов.

Что очищает WP-Sweep?

WP-Sweep использует корректные функции удаления WordPress для очистки БД. На момент написания этой статьи, он справляется со следующим:

  • Редакции записей
  • Автоматически сохраненные черновики
  • Удаленные комментарии
  • Неподтвержденные комментарии
  • Комментарии, являющиеся спамом
  • Неиспользуемые метаданные записей
  • Неиспользуемые метаданные комментариев
  • Неиспользуемые метаданные пользователей
  • Неиспользуемые отношения терминов
  • Неиспользуемые термины
  • Дублирующиеся метаданные записей
  • Дублирующиеся метаданные комментариев
  • Дублирующиеся метаданные пользователей
  • Промежуточные вариации
  • Оптимизация таблиц базы данных
  • Кеш oEmbed в метаданных записей

Вот и все, мы надеемся, что эта статья помогла вам вычистить мусор из вашего сайта на WordPress с помощью WP-Sweep.

По всем вопросам и отзывам просьба писать в комментарии ниже.

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

Продолжаем серию статей посвящённую оптимизации сайта wordpress. В предыдущей статье я показывал с помощью плагина wp clean up. Сегодня я покажу как удалить остатки удалённых плагинов wordpress. Когда вы удаляете плагин, то вы можете да же не догадываться, что он оставляет после себя не нужный вам мусор, тем самым захламляя вашу базу данных. Удалённые плагины оставляют после себя таблицы, которые отображаются в базе данных. Вот такие таблицы мы и будем удалять.

Для начала проведём поверхностную очистку с помощью плагина, а потом я покажу безопасный способ, как вручную удалять неиспользуемые таблицы из БД, это на тот случай, если плагин не сможет удалить весь мусор. Удалить неиспользуемые таблицы, вам поможет плагин – WPDBSpringClean , плагин очень простой и не нуждается в настройках, лучший в своём роде, вам нужно будет просто нажать пару раз на кнопку и всё. Установить плагин вы сможете прямо из админ-панели wordpress, для этого перейдите по вкладке: Плагины – Добавить новый , введите название плагина в форму поиска, нажмите Enter, установите и активируйте открывшийся плагин.

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

После поиска и очистки таблиц, вверху перейдите на вкладку – DB Table Optimize .

Сначала нажмите на кнопку – Perform Search . Плагин найдёт таблицы нуждающиеся в оптимизации. Затем отметьте таблицы и нажмите на кнопку – Optimize . Плагин оптимизирует таблицы.

Конечно не факт , что плагин удалит все неиспользуемые таблицы удалённых плагинов, но это можно проверить. Далее я покажу вам как посмотреть какие таблицы отображаются в БД и как вручную удалять неиспользуемые таблицы. После использования плагина – WPDBSpringClean , можно будет его деактивировать. Пользуйтесь плагином раз в 2-3 месяца, если вы часто устанавливаете и удаляете различные плагины.