Для чего нужны транзиенты в Wordpress и что это такое, как ими управлять и что с ними делать.

Что такое транзиенты?

Транзиенты в WordPress – это способ временного хранения данных. Они позволяют сохранять данные с указанием времени жизни. По истечении этого времени данные автоматически удаляются. Это полезно для уменьшения нагрузки на сервер, так как часто используемые данные не запрашиваются каждый раз заново.

Транзиенты храняться в таблице wp_options. Данные сохраняются в виде пары ключ = значение

Где применяются транзиенты?

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

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

Как работать с транзиентами?

В WordPress для работы с транзиентами используются функции:
set_transient($key, $value, $expiration) – для создания или обновления транзиента.
get_transient($key) – для получения значения транзиента.
delete_transient($key) – для удаления транзиента.

Пример использования


  // Создание транзиента на 12 часов
set_transient('my_transient_key', 'my_transient_value', 12 * HOUR_IN_SECONDS);

// Получение значения транзиента
  $value = get_transient('my_transient_key');

// Удаление транзиента
  delete_transient('my_transient_key');
  

Преимущества использования

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

Ограничения и особенности

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

Очистка транзиентов

Часто транзиенты не удаляются из базы, хотя все они и имеют срок жизни. Из личного опыта по разработке и сопровождению сайтов у нас часто были случаи, когда у сайта накапливалось около миллиона транзиентов, что дает нагрузку на базу. Да и вообще, миллион ненужных записей…

Есть два основных способа удаления ненужных транзиентов и очистка таблицы.

Первый: использование специальных плагинов, которые ускоряют сайты (их много). Например, «perfmatters». Там есть опция – «Просроченные транзиенты» (и много других для очистки базы сайта от мусора).

Второй: SQL-запрос к базе.


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

В категории:

Wordpress,