Рубрики
Нестандартные мысли

Уменьшаем размер базы данных WordPress

Содержимое

Уменьшаем размер базы данных WordPress

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

В общем забилось у меня все место на хостинге, что не так, где рыть — хз. С помощью поддержки хостера удалили все, что не мешает работе сайтов (логи и прочую хрень), а места все мало! Рекомендация от хостера — перейти на тариф подороже. Так-то идея хорошая, но жадно каждый раз платить сверх нормы из-за разросшихся аппетитов WordPress’а.

Несколько нехитрых маневров и становится ясно, что львиная доля места забита Базой Данных Вордпресса, суммарно по сайтам аж на 2,5 гига. Победителем стал один сайт с базой mysql под 1 гигабайт.

Дело за малым — надо как-то уменьшить размер sql базы, тем самым еще ускорив загрузку и работу wordpress.

Резервная копия базы данных MySQL

Начинаем эксперименты с базой данных mysql, но перед этим не забываем сделать резервную копию. Подробно про сохранение БД я писал. Кому лень перечитывать, предлагаю и ленивый способ — прям в phpMyAdmin кликаем закладку Экспорт, выбираем Быстрый способ экспорта, кликаем окей и все готово — мы предохранились.

 

Посмотрев теперь на таблицы в базе SQL видим (по крайней мере у меня так), что более всех весит таблица wp_posts. На самом прожорливом сайте эта таблица весит 800+ мегабайт. Значит чистить вордпресс от мусора надо начинать с этой таблицы.

Уменьшаем размер базы данных

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

И тут яндекс предлагает коллективное решение проверенное временем. Чтобы удалить все старые редакции записей в вордпресс, надо сделать простой sql-запрос в админке БД:

DELETE FROM wp_posts WHERE post_type = «revision»

 

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

В моем конкретном случае такая команда не уменьшила размер таблицы wp posts, так что пришлось еще сделать одну рекомендуемую манипуляцию. Банально оптимизируем таблицу средствами MySQL.

Можно ввести запрос:

OPTIMIZE TABLE wp_posts

А можно выделить таблицу в админке и выбрать нужное действие

И после этих манипуляций размер таблицы в базе данных уменьшился с 800Мб до 40Мб, т.е. в 20 раз!

Но и это еще не все!

Отключаем создание ревизий записей

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

Чтобы отключить ревизии, идем в файл wp-config.php, там ищем строку:

define(‘DB_COLLATE’, »);

А после нее добавляем следующую запись:

define(‘WP_POST_REVISIONS’, false);

Теперь ревизии не будут создаваться, а если все-таки хочется немного подстраховаться, то можно их ограничить количеством, немного изменив запись:

define(‘WP_POST_REVISIONS’, 2);

Таким образом, будет создаваться не более2 редакций постов.

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

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

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