Как очистить базу данных WordPress?
Сегодня попробую коротко поговорить о том, что нужно сделать для того, чтобы оптимизировать свой блог. Если вы используете WordPress для редактирования блога, Вы, вероятно, заметили, как может увеличиться база данных. Даже если Вы еще опубликовали не так много записей.
Это может сказаться на время загрузки блога, значительно его замедляя. Сегодня мы увидим, как исправить и оптимизировать базу на основе наших реальных потребностей.
Почему базы данных WordPress занимают так много места?
Прежде всего давайте попытаемся понять, что влияет на нашу базу данных, и заставляет стать её слишком большой по размеру. Если вы посмотрите на размер каждой таблицы то увидите, что таблица “wp_posts” имеет наибольший размер.
Почему эта таблица занимает так много места, даже если я не публикую много постов?
В WordPress версии 2.6 и выше есть очень полезная функция, которая позволяет отслеживать все изменения, сделанные в ходе публикации статьи. Каждый раз, когда проект статьи сохраняется в WordPress, он записывается в базу данных. В следующий раз этот же проект будет сохранен, а потом и еще один пересмотренный проект будет также сохранен в базе данных. Это происходит каждый раз когда Вы записываете обновлённый или правленый черновик.
Вы можете легко это увидеть, когда десять раз сохраните черновик, и вместо одной статьи будет записано десять копий таких статей, а не одна.
Эта функция была реализована чтобы предоставить автору возможность вернуться к ранее сохраненной копии проекта.
Что делает нашу базу данных такой большой?
База данных, которая имеет слишком большой размер не является идеальной по целому ряду причин, наиболее важными из которых являются:
- Большинство поставщиков хостинга ограничивают место на диске, и они предлагают дополнительное место на платной основе (например, за дополнительное место Вы можете отдать сумму, на которую Вы могли бы содержать свой блог пол года или даже год).
- Ваш блог может потребовать больше времени для загрузки. Это вызвано тем, что запросы, сделанные к базе данных для извлечения статьи из таблицы wp_posts будут дольше выполняться. Кроме того, выборка может проводиться не только по одной таблице.
- Архивные файлы также могут занять много места и времени для создания, если база данных имеет большой размер.
Как оптимизируя мой WordPress блог, я могу уменьшить размер базы данных?
Плагины, такие как delete revision, позволят удалить все изменения, которые были сохранены в таблице “wp_posts“. Если Вы не хотите устанавливать еще один плагин на блоге, Вы можете получить тот же результат выполняя простой запрос в базе данных. Давайте посмотрим, как это сделать.
Прежде всего, проверьте размер таблицы “wp_posts” для того, чтобы получить представление о том, сколько места будет освобождено. Например мой реальный размер таблицы “wp_posts” в базе YIW составляет 59,4 Мб.
Первый шаг: резервное копирование базы данных
Первым делом, создайте резервную копию базы данных вашего блога: это важный шаг, который никогда не следует упускать из виду каждый раз, когда Вы работаете с базой данных. Таким образом, если что-то пойдет не так, всегда можно вернуться к первоначальному состоянию.
Второй шаг: выполните запрос, который удалит все изменения
Создайте следующий запрос в любом клиенте, который Вы используете для управления базой данных (как правило, PhpMyAdmin используется на большинстве хостингах):
DELETE FROM wp_posts WHERE post_type = "revision";
Таким образом, мы удаляем все записи в таблице “wp_posts“, которые имеют в поле “post_type” значение ” revision“. Иными словами, все копии внутри папки “wp_posts” и те , которые имеют в поле “post_type” значение ” revision“.
Выполните запрос и вы увидите, что все ненужные записи были удалены.
Третий шаг: оптимизируйте таблицу wp_posts
Теперь вы должны выполнить следующий запрос, чтобы оптимизировать вновь изменённую таблицу “wp_posts”:
OPTIMIZE TABLE wp_posts;
Теперь проверьте размер этой таблицы. В моей базе данных YIW, таблица “wp_posts” стала размером лишь 3,4 Мб, как Вы можете видеть на фото ниже. Я освободил очень много места, вы не думаете?
Изменение настроек записи ревизий в WordPress, исходя из собственных потребностей.
Читая информацию по API для WordPress относительно настройки изменений, я узнал, что есть возможность ограничить максимальное число раз, когда статья может быть пересмотрена, или даже отключить эту функцию полностью.
Таким образом, используя постоянную “WP_POST_REVISIONS” и применяя её в файле конфигурации WordPress (wp-config.php), мы можем управлять всем изменениями или ревизиями на основе наших личных вкусов и потребностей.
Эта константа принимает 3 значения:
- true (по умолчанию), -1: сохранять все изменения;
- false , 0: не хранить какие-либо изменения (за исключением одного автосохранения на пост)
- (INT)> 0: Хранить заданное число изменений (+1 автосохранение) на пост. Старые изменения будут автоматически удалены.
Давайте посмотрим, как применить это в файле конфигурации.
Откройте файл “wp-config.php” и после следующего определения:
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
Добавьте следующую строку, чтобы отключить функцию ревизий:
define('WP_POST_REVISIONS', false);
В противном случае добавьте следующую строку, чтобы определить максимальное количество изменений по одной статье. В этом случае, я разрешил три изменения:
define('WP_POST_REVISIONS', 3);
Заключение.
Я хотел сделать эту статью как можно короче, но прошу прощения если получилось не всё так коротко.
Сегодня Вы видели, как оптимизировать и управлять базой данных блога, используя несколько простых трюков. Достаточно часто применяя несколько запросов, можно получить хорошие результаты.
По материалам Нанно Папалардо


Огромное спасибо, за статью! А я все никак не могла понять, почему мой такой маленький блог занимает так много места…
Все поправила)))
а почему для этих целей нельзя использовать плагин, про который Вы упоминали в этой статье?
Можно конечно и плагин. Но, как известно, каждый плагин нагружает систему. Если можно выполнить задачу используя несколько строк кода, то плагин, думаю, будет лишним.
Спасибо! Просто и понятно. После перехода на WordPress с обычного шаблона ситуация с переполненной базы данных удручала ))
Спасибо большое автору за статью. Очень помогло. Из 37 мб. осталось 8 mb. Чудеса )
Спасибо автору, очень полезная инструкция!
Сам додумался куда вписать запросы:(яблондинко))
1. открываем PhpMyAdmin
2. переходим на закладку “Запрос по шаблону”
3. вписываем запрос1 в окно “SQL-запрос к базе данных ваша_база:” – нажимает “Выполнить запрос”
4. вписываем запрос2…готово!)
Каждый раз, по умолчанию в сборке включаю плагин post-revision, настраивая или вовсе отключая (зависит от важности проекта). Если есть блог, где раньше ревизии были включены, то очень удобно использовать Delete-Revision, он же и может оптимизировать таблицы. Это проще, чем ползать по пзпмуадминке и вводить запросы (для неподготовленного пользователя, да и в принципе.
Да, плагин это намного проще, особенно для новичков, хотя каждый плагин лишняя нагрузка на сервер. Минимальное количество плагинов и без того трудно выделить
Использую WordPress.
В базе около 5 000 000 строк. При таком количестве строк сайт не грузится вообще.
Если 1 500 000 строк то сайт подгружается еле еле (медленно).
на локалке вообще не грузиться
какие могут быть причины ?
в настройках php.ini ?
возможно ли что проблема в индексах ? могут они тормозить базу?
как решить эту задачу?
Спасибо. Недавно просматривала базу и впервые обратила внимание, сколько ненужного дублирования записей, которое занимает много места.
СУПЕЕЕЕЕЕРР!!! СПАСИБО!!!!!!!!!!
Плагин конечно намного проще, – но лишняя нагрузка на сервер. Минимальное количество плагинов и удалить все лишнее из базы
Спасибо автору за подробную статью. Все четко для себя уяснила. Буду теперь правильно минимизировать базу данных сайта.
Спасибо за инструкцию!) Дай Бог нагрузка на mysql спадёт)
Большое спасибо за полезную статью!
Полезного много не бывает
Уменьшил размер базы данных практически в два раза.
Но есть вопрос: как удалить строчки в таблице options, оставшиеся после удалённых тем?
И последнее: Вы не хотите поставить вместо капчи математическую задачку или чекбокс?