Как уменьшить размер таблицы wp_posts и ускорить работу WordPress

Те кто постоянно пользуется сайтами на базе CMS WordPress, замечали, что таблица wp_posts имеет склонность к безудержному увеличению размера.

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

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

Как отключить создание ревизий?

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

Найдите, а если нет добавьте, такую строчку:
define('WP_POST_REVISIONS', 0);

После этих изменений ревизии больше создаваться не будут.

Как ограничить число создаваемых ревизий?

Однако, вам можем понадобится возможность иметь историю изменений. Это особенно полезно, если сайтом управляет сразу несколько администраторов/редакторов.

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

define('WP_POST_REVISIONS', 5);

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

Как удалить ревизии и уменьшить размер таблицы wp_posts?

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

Чтобы удалить все ревизии из таблицы wp_posts, нужно выполнить следующий SQL-запрос:
DELETE FROM wp_posts WHERE post_type = "revision";

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