Dalam WordPress, transients adalah data sementara yang disimpan di tabel wp_options
dengan nama yang diawali dengan _transient_
atau _site_transient_
.
Transients digunakan untuk menyimpan hasil dari operasi yang mahal secara waktu, seperti permintaan API eksternal atau query database kompleks, sehingga data tersebut bisa digunakan kembali tanpa perlu melakukan operasi yang sama berulang kali.
Selain itu, transients menyederhanakan pengelolaan cache dengan menyediakan metode yang mudah untuk menyimpan dan mengelola data cache dalam WordPress. Pengembang dapat dengan mudah mengatur durasi kedaluwarsa untuk setiap transient, memungkinkan data cache diperbarui secara otomatis setelah periode tertentu tanpa memerlukan intervensi manual.
Dengan menggunakan transients, waktu akses data menjadi lebih cepat karena data yang sudah di-cache dapat diakses langsung, mengurangi latensi yang biasanya disebabkan oleh operasi I/O atau pemrosesan yang berat.
Cara kerja transients
+---------------------+
| User Request |
| (e.g., page load) |
+---------------------+
|
v
+---------------------+
| Check Transient |
| in wp_options |
+---------------------+
|
v
+---------------------+
| Transient Exists? |
| (Cached Data) |
+---------------------+
| |
| No | Yes
v v
+---------------------+ +---------------------+
| Perform Expensive | | Use Cached Data |
| Operation (e.g., | | (from Transient) |
| API Call, Query) | +---------------------+
+---------------------+ |
| |
v v
+---------------------+ +---------------------+
| Store Data in | | Continue with |
| Transient | | Cached Data |
| (with Expiry Time) | +---------------------+
+---------------------+
|
v
+---------------------+
| Return Response |
| to User |
+---------------------+
Penjelasan diagram
- User Request: Pengguna membuat permintaan ke situs WordPress, misalnya saat memuat halaman.
- Check Transient in
wp_options
: WordPress memeriksa tabelwp_options
untuk melihat apakah data yang dibutuhkan sudah ada sebagai transient. - Transient Exists?: Jika transient dengan data yang relevan ada dan belum kadaluarsa, WordPress menggunakan data yang tersimpan. Jika tidak, proses berikutnya dilakukan.
- Perform Expensive Operation: Jika transient tidak ada atau sudah kadaluarsa, WordPress melakukan operasi yang memerlukan waktu atau sumber daya yang signifikan, seperti permintaan API eksternal atau query database yang berat.
- Store Data in Transient: Setelah operasi selesai, hasilnya disimpan dalam transient di tabel
wp_options
dengan waktu kadaluarsa tertentu. Ini memungkinkan data tersebut digunakan kembali tanpa perlu melakukan operasi berat lagi. - Return Response to User: WordPress mengembalikan respons ke pengguna, baik menggunakan data yang di-cache dari transient atau hasil dari operasi yang baru dilakukan.
Mengapa transients menumpuk di database?
Transients di WordPress dapat menumpuk di tabel wp_options
(atau nama tabel khusus misalnya fufufafa_options
, jika awalan tablenya fufufafa_
) jika durasi kadaluarsa tidak ditetapkan dengan benar atau terlalu lama. Dalam hal ini, data transient akan tetap ada meskipun sudah tidak digunakan lagi.
Masalah juga bisa terjadi pada proses pembersihan otomatis yang dimiliki WordPress untuk menghapus transients yang sudah kadaluarsa. Mekanisme ini tidak selalu berjalan secara teratur atau mungkin tidak berfungsi dengan baik pada beberapa konfigurasi server.
Penggunaan plugin atau tema yang tidak efisien juga dapat menyebabkan penumpukan transients. Beberapa plugin atau tema mungkin menyimpan terlalu banyak transients atau tidak membersihkannya dengan benar setelah data tidak lagi diperlukan.
Selain itu, penyimpanan transient yang tidak tersinkronisasi dapat terjadi jika ada masalah dengan database atau konfigurasi server. Dalam kasus seperti ini, transients yang sudah kadaluarsa mungkin tidak dihapus secara otomatis, yang mengakibatkan penumpukan data.
Pengembang juga mungkin secara manual menyimpan transient tanpa memperhatikan durasi atau pembersihan otomatis, yang dapat menyebabkan penumpukan data di tabel wp_options
.
Cara membersihkan transients
Untuk mengelola transients dengan baik, kita dapat memanfaatkan fitur crontab yang ada di Linux, BSD, atau panel seperti CloudPanel & cPanel. Sebelum membuat cronjob, kita harus membuat shell script terlebih dahulu agar cronjob dapat dieksekusi.
# Shell script ini ditujukan untuk menghapus entri _site_transient_ dari tabel wp_options di
# database wordpressdb, silakan sesuaikan dengan kebutuhan masing-masing.
#!/bin/bash
# Konfigurasi database
DB_HOST="localhost"
DB_USER="username_db"
DB_PASS="password_db"
DB_NAME="wordpressdb"
TABLE_NAME="wp_options"
LOG_FILE="/var/log/cleanup-transients.log"
VERBOSE=false
# Fungsi untuk log
log() {
local message="$1"
echo "$(date +'%Y-%m-%d %H:%M:%S') - $message" | tee -a $LOG_FILE
}
# Fungsi untuk pesan verbose
verbose() {
if [ "$VERBOSE" = true ]; then
echo "$1"
fi
}
# Tampilkan bantuan
show_help() {
echo "Usage: $0 [-v] [-l <log_file>]"
echo ""
echo "Options:"
echo " -v Enable verbose mode."
echo " -l <log_file> Specify custom log file (default: /var/log/cleanup-transients.log)."
}
# Parse argumen command line
while getopts ":vl:" opt; do
case $opt in
v)
VERBOSE=true
;;
l)
LOG_FILE="$OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG" >&2
show_help
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
show_help
exit 1
;;
esac
done
# SQL untuk menghapus entri _site_transient_
SQL_QUERY="DELETE FROM $TABLE_NAME WHERE option_name LIKE '_site_transient_%';"
# Mulai proses pembersihan
log "Mulai membersihkan entri _site_transient_ dari tabel $TABLE_NAME di database $DB_NAME."
verbose "Menghubungkan ke database $DB_NAME pada $DB_HOST..."
# Jalankan perintah SQL
mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -e "$SQL_QUERY"
if [ $? -eq 0 ]; then
log "Pembersihan entri _site_transient_ dari tabel $TABLE_NAME berhasil."
verbose "Berhasil menghapus entri _site_transient_."
else
log "Terjadi kesalahan saat membersihkan entri _site_transient_."
verbose "Kesalahan terjadi saat menjalankan query."
exit 1
fi
log "Proses pembersihan selesai."
verbose "Log disimpan di $LOG_FILE."
Shell script diatas sudah dilengkapi fitur verbose, yaitu untuk melihat informasi yang lebih rinci tentang proses atau perintah yang sedang dijalankan. Selain itu, script tersebut menyimpan log yang dapat dilihat setiap saat menggunakan perintah tail
, lokasinya ada pada direktori /var/log/
, Anda dapat mengubahnya ke direktori lain, misalnya direktori home
untuk memudahkan navigasi dan tujuan lainnya.
Jangan lupa buat sebagai executable, gunakan perintah chmod +x cleanup-transients.sh
agar membuat file tersebut dapat dijalankan secara langsung atau melalui cronjob.
Jalankan dari crontab
Untuk pengguna cPanel, Anda dapat menggunakan fitur Crontab dengan membuka menu ini pada cPanel Anda.
Jika Anda mengalami kesulitan, silakan kunjungi halaman ini. Pengguna CloudPanel dapat mengaktifkannya melalui fitur Cron Job pada situs Anda.
Jika Anda mengalami kesulitan, kunjungi halaman dokumentasi CloudPanel.
Untuk pengguna stack Linux atau BSD yang tidak menggunakan panel, seperti kami di MauCariApa.com, dapat menggunakan fitur cron yang ada di Linux atau BSD. Cukup buka crontab menggunakan perintah sudo crontab -e
, masukkan entrinya seperti berikut (pilih saja salah satu):
- Jalankan script setiap 4 jam:
0 */4 * * * /path/to/your/cleanup-transients.sh
- Jalankan script setiap 6 jam:
0 */6 * * * /path/to/your/cleanup-transients.sh
- Jalankan script setiap 12 jam:
0 */12 * * * /path/to/your/cleanup-transients.sh
- Jalankan script setiap 24 jam:
0 0 * * * /path/to/your/cleanup-transients.sh
Simpan dengan Ctrl+X
kemudian tekan Enter
jika menggunakan editor Nano, atau kombinasi huruf :wq
jika menggunakan editor Vim. Pastikan direktori /path/to/your/
diganti dengan direktori yang sesuai untuk file cleanup-transients.sh (pastikan izin dan nama filenya benar).
Kesimpulan
Transients adalah fitur penting dalam WordPress yang membantu meningkatkan performa situs dengan menyimpan data sementara dan mengurangi beban server. Dengan menggunakan transients secara efektif, Anda dapat mempercepat akses data dan mengurangi latensi, sehingga memberikan pengalaman pengguna yang lebih baik dan efisiensi yang lebih tinggi dalam pengelolaan cache.
Namun jika tidak dibersihkan secara efektif, dapat terjadi penumpukan transients di tabel wp_options
yang dapat menyebabkan database menjadi sesak dan ukurannya membengkak dikarenakan transients yang sudah tidak digunakan lagi. Dengan mengelola durasi kadaluarsa, Anda dapat mengurangi penumpukan dan menjaga performa database WordPress tetap optimal.
Artikel Terkait
Hosting GoDaddy Managed WordPress sekarang gratis SSL
April 18, 2021
Cara perbaiki Jetpack tidak bisa login
September 27, 2024
Cara Menonaktifkan Cache CloudFlare Tanpa Kehilangan Fitur Proxy
December 18, 2022
Cara Mudah Membuat Hotlink Protection Di CloudPanel
April 7, 2023
Cara Instalasi Cockpit Web Console Di Ubuntu 20.04
March 24, 2021
Cara Mudah Unduh Video Snack Tanpa Watermark
April 23, 2023
Saran artikel ini dibuat oleh Kudatuli Project
FlexClip adalah solusi pengeditan video yang paling mudah digunakan untuk pemula.