Блог фотографа

немного о фотографии в Подмосковье

И снова про Wordpress. Существенно уменьшаем базу данных, отключая ревизии.

| комментарии

Добрый день, коллеги-блоггеры. Раз уж вас угораздило выбрать Wordpress для своих строк, значит, и эти строки могут быть для вас полезны. Не так давно я уже писал, что смог немного ускорить работу сайта, уменьшив базу данных вдвое, то есть с 60МБ до 30. Что существенно сказалось и на нагрузке на сервер, а это очень волнует некоторых коллег из-за гневных писем хостеров. На днях же я нашел ещё один способ уменьшить базу данных. На этот раз с 30МБ до 5. Именно так, я не опечатался – база уменьшилась до ПЯТИ МЕГАБАЙТ!

Все достаточно просто: Wordpress классный движок и для групповых работ просто замечателен. Например, если идет совместная работа над текстами и их оформлением. Каждый раз, когда кто-то сохраняет статью или правку, создается ревизия. Это как бы «история» статьи. То есть все изменения, удаленный текст и так далее – всё это остается у вас в базе данных. Вопрос: а если вы работаете над статьёй один или максимум вдвоем (или текст вообще готовится отдельно (например, в Word)), нужен ли вам этот механизм ревизий? Я полагаю, что нет. И с этой мыслью стал искать, как же отключить это дело. Все оказалось просто, нужно в файл настройки wp-config.php добавить следующее:

define(‘WP_POST_REVISIONS’, false);

Отлично, систему ревизий мы отключили, осталось дело за малым. А именно: удалить к чертям то, что у нас уже накопилось. Для этого нужно зайти в саму базу данных. Вы можете это сделать непосредственно в консоли сервера (тогда мои слова вам излишни и вы сами прекрасно знаете, что дальше делать). Или можно зайти в PHPMyAdmin (это даёт любой хостер) и выполнить все шаги там. Итак:

  • делаем копию базы данных. Возьмите за правило всегда создавать копии, прежде чем что-то делать. Это касается не только сайтов, но и фотографий, документов и так далее. В PHPMyAdmin это делается просто: экспорт и галочку «сохранить в файл».

  • далее во вкладке SQL вы можете ввести следующую команду:

DELETE FROM wp_posts WHERE post_type = “revision”; DELETE FROM wp_postmeta WHERE meta_key IN(‘edit_lock’, ‘edit_last’,‘_wp_old_slug’);

И нажать OK. После этой операции у меня было удалено 3556 записей (вам это команда скажет, можете в комментариях поделится своим значением). А в этом блоге всего с 3 сотни статей. То есть на каждую статью у меня было почти с десяток копий. Многовато, не так ли?

  • но эта операция не уменьшит вашу базу, не забудьте запустить оптимизацию. То есть выбираете табличку wp_posts и внизу «оптимизация таблицы».

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

Все, теперь можете проверить размер базы. У меня это вышло примерно 5,2МБ, внизу таблички вы можете это увидеть.

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

Комментарии