Transient

Kasia Bielawska
>
Kasia Bielawska

Transient to specjalny mechanizm w systemie WordPress, który służy do tymczasowego przechowywania danych w bazie danych. Można go porównać do pamięci podręcznej (cache). Programiści używają go, aby zapisać wyniki czasochłonnych operacji (np. pobieranie danych z zewnętrznych serwisów czy skomplikowane obliczenia) na określony czas.

Dzięki temu, przy kolejnych odwiedzinach strony, WordPress nie musi powtarzać tych operacji od zera, tylko błyskawicznie pobiera gotowy wynik z tabeli wp_options. To rozwiązanie znacząco przyspiesza działanie witryny i zmniejsza obciążenie procesora.

Dlaczego Transient jest ważny dla wydajności?

Każde zapytanie do bazy danych lub zewnętrznego API zajmuje ułamki sekund. Gdy takich zapytań jest setki, strona zaczyna „zamulać”. Transient pozwala zapisać odpowiedź na np. 12 godzin. Przez ten czas strona ładuje się niemal natychmiastowo.

Jeśli zależy Ci na maksymalnej szybkości, kluczowy jest dobór infrastruktury. Dobrze zoptymalizowany hosting wordpress potrafi jeszcze lepiej zarządzać takimi danymi, przechowując je w pamięci RAM (np. za pomocą Redis lub Memcached), co jest jeszcze szybsze niż standardowa baza danych.

Jak działa transient w WordPress?

Od strony technicznej WordPress korzysta tu z prostego schematu: zapisuje dane przez set_transient(), odczytuje je przez get_transient(), a usuwa przez delete_transient(). Jeśli transient nie istnieje albo już wygasł, get_transient() zwraca false, więc aplikacja powinna umieć sama odtworzyć dane. W środowiskach Multisite działa też odpowiednik sieciowy, czyli site_transient.

Jak długo przechowywane są dane w Transient?

O czasie wygaśnięcia decyduje programista, który tworzy dany mechanizm. Może to być minuta, godzina, a nawet tydzień. Po upływie tego czasu WordPress automatycznie uznaje dane za nieaktualne i przy następnej próbie dostępu pobiera je na nowo, odświeżając „schowek”. Jeśli zauważysz, że zmiany wprowadzane w zewnętrznych widgetach (np. pobierane wpisy z Instagrama) nie pojawiają się od razu na stronie, prawdopodobnie odpowiada za to właśnie Transient. Nie jest to błąd, a celowe działanie mające na celu oszczędzanie zasobów serwera.

Czy transient może spowolnić stronę?

Sam mechanizm zwykle pomaga przyspieszać stronę, ale źle używany może zacząć przeszkadzać. Problem pojawia się wtedy, gdy transientów jest za dużo, są źle nazwane, mają nieprzemyślany czas życia albo przechowują dane, które nie powinny tam trafiać. Warto też pamiętać, że transienty bez czasu wygaśnięcia są autoloadowane, a te z określonym terminem wygaśnięcia nie są. Z punktu widzenia wydajności to ważna różnica