Те кто постоянно пользуется сайтами на базе 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"
;
После выполнения этой команды ваша база данных уменьшиться в несколько раз.