wp_term_relationships

wp_term_relationships

Очистка раздутой таблицы wp_term_relationships

Иногда таблица wp_term_relationships становится раздутой. Это происходит особенно часто, если вы используете свой сайт не как блог, а как какой-то другой тип контента, где систематически удаляете неактуальные записи. На моем сайте https://alljob.info было более 18000 записей, которых больше не существует, что замедляло работу сайта. Я использовал крон, который автоматически удалял старые вакансии с сайта, но оставались ‘хвосты’ этих записей в таблице wp_term_relationships, размер которой превышал 30 мегабайт!

К счастью, MySQL может помочь вам найти эти ‘хвосты’ с простым sql запросом:

SELECT * FROM wp_term_relationships
    LEFT JOIN wp_posts ON wp_term_relationships.object_id = wp_posts.ID
    WHERE wp_posts.ID is NULL;

Можно автоматически удалить записи! Убедитесь, что вы сделали резервное копирование базы данных перед запуском следующего sql запроса:

DELETE wp_term_relationships FROM wp_term_relationships
    LEFT JOIN wp_posts ON wp_term_relationships.object_id = wp_posts.ID
    WHERE wp_posts.ID is NULL;

Количество удаленных строк должно соответствовать количеству строк, возвращаемых в запросе SELECT, выше.

После того, как вы удалили ненужные элементы, убедитесь, что сделали оптимизацию таблицы базы данных.

OPTIMIZE wp_term_relationships;

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

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