Skip to content


Как очистить базу данных wordpress от мусора и уменьшить ее размер

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

Чистим базу данных WordPress

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

Чистку базы данных wordpress нужно делать регулярно, я произвожу ее раз в месяц. Для этого я применяю специальные SQL запросы.

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

ВНИМАНИЕ!!! Прежде чем приступить к очистке базы данных wordpress, сделайте ее резервную копию! Это позволит восстановить прежний вариант, если вы вдруг допустите ошибку и сломаете Ваш сайт.

Данные SQL запросы применимы для базы данных wordpress со стандартным префиксом в ее таблицах, если у таблиц в Вашей базе данных префикс другой, то просто замените в запросе префикс «wp_» на тот, который Вы используете.

1. Очищаем таблицу wp-commentmeta:

?Download download.txt
1
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)

2. Удаление комментариев списком:

— спам:

?Download download.txt
1
DELETE FROM wp_comments WHERE comment_approved = 'spam';

— неодобренные:

?Download download.txt
1
DELETE FROM wp_comments WHERE comment_approved = '0';

— одобренные:

?Download download.txt
1
DELETE FROM wp_comments WHERE comment_approved = '1';

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

?Download download.txt
1
update wp_comments set comment_agent ='' ;

3. Удаление ревизий

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

?Download download.txt
1
2
3
4
5
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

4. Чистка таблицы wp_postmeta

?Download download.txt
1
DELETE FROM `wp_postmeta` WHERE `meta_key` IN('_edit_lock', '_edit_last','_wp_old_slug')

5. Удаление уведомлений

Уведомления, если по простому — это такие комментарии, что кто-то сослался на Вас, если Вы решили что такие комментарии Вам не нужны на Вашем сайте, их можно удалить следующим образом

?Download download.txt
1
DELETE FROM wp_comments WHERE comment_type = 'pingback';

После удаления, можно закрыть возможность принимать пинги

?Download download.txt
1
UPDATE wp_posts p SET p.ping_status = 'closed'

Если будет нужно открыть прием пингов, то примените следующий запрос

?Download download.txt
1
UPDATE wp_posts p SET p.ping_status = 'open'

6. Удаление неиспользуемых тегов записей

Если какие-то теги потеряли актуальность их можно удалить применив такой запрос:

?Download download.txt
1
2
3
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

7. Очищаем кэш фида

Кэш фида так же храниться в базе данных wordpress, чтобы очистить его — выполните следующий запрос:

?Download download.txt
1
DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient%_feed_%');

Поделиться в соц. сетях



Нравится



* Задай Свой Вопрос на Бесплатной Индивидуальной Онлайн Консультации

*
Перевод шаблонов WordPress Самостоятельно, Легко и Просто!

* Подпишись на RSS-обновления моего блога по E-mail, что бы быть в курсе последних обновлений.





Рубрика: База данных Wordpress, Настройка блога.

Метки: , , , , , .


Комментарии: 8    Оставьте свой комментарий!


  1. Сергей

    Все не мог понять, почему растет размер сайта? Даже когда не добавляю новую информацию. Перенес все изображения на отдельный хостинг. Даже удалил некоторые страницы. Довел сайт до минимума, но почему, то его размер составлял 50 МБ.
    В общем, дело в том, что я обнаружил на сервере в корневом каталоге файл error_log размеров 20МБ. Я его удалил — место освободилось. Файл error_log снова появился. Так что обратите на это внимание.

    Спасибо, Николай, за информацию. Думаю, пригодиться, когда сайт разрастется до больших размеров.

  2. Николай Сидорюк

    @ Сергей:
    Файл error_log — это спецфайл, который создаётся програмным обеспечением хостинга, в него записываются автоматически все действия, которые оговорены в специальных протоколах хостинга на случай возникновения каких-либо ошибок, несоответствий и т.д. (я не претендую на точную формулировку в определении назначения данного файла, а просто примерно описываю его назначение более доступным языком)

    Если в настройках хостинга не предусмотренна его периодическая очистка, то эту чистку нужно производить самому (не удалять файл, а редактировать), удаляя из него информацию и сохраняя его…

  3. Сергей

    Спасибо! Пока все работает нормально.

  4. Сергей

    Информацию из error_log можно использовать для восстановления сайта, если возникнут какие-либо ошибки?

  5. Александр

    Для чего закрыть открыть прием пингов?

  6. Николай Сидорюк

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

  7. Андрей

    Спасибо за полезную и нужную информацию!

  8. Елена

    Нужный материал, я сейчас как раз занимаюсь ускорением блога и воспользуюсь вашими советами, спасибо!



HTML

или ответить на этот пост через trackback.



Rambler's Top100 Рейтинг@Mail.ru Участник Blograte.ru   Анализ сайта Яндекс.Метрика