Flector

Как удалить устаревшие transients записи в базе данных?

Пример поиска в phpMyAdmin

Формально все transients-записи имеют срок истечения, после которого они должны удаляться из базы данных. Но так происходит далеко всегда - иногда плагины или темы ставят слишком большой срок действия transients-записей, а иногда они просто криво добавлены. В любом случае, если вам смущает большое число таких записей и вы хотите от них избавиться, то вы должны использовать следующий sql-запрос:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%');

Все актуальные transients-записи будут немедленно пересозданы (после открытия необходимой страницы), а устаревшие исчезнут навсегда.


Комментарии (3 комментария)
  1. Добрый день!

    Этот запрос успешно удаляет из БД записи, в которых встречается "transient". В Сети также встречается и другая команда:

    DELETE FROM `wp_options` WHERE `option_name` LIKE ('_site_transient_%');

    Насколько она полезна?

    Заранее благодарю.

    • Flector:

      никак не полезна.
      сделайте поиск по базе данных "transient" - видите, что там нет никаких "site_transient".
      и про удаляет записи вы тоже не правы - поиск идет по `option_name` - там нет записей.

  2. "Записи" я имел в виду опции из БД:)

    Информация о "site_transient" видел по большей части на зарубежных сайтах. Видимо их делает какой-то плагин. Ну да ландо.

    Спасибо за ответ.

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!