All Products
Search
Document Center

PolarDB:Fast Query Cache

Last Updated:Mar 28, 2026

Fast Query Cache adalah mesin cache native PolarDB yang meningkatkan queries per second (QPS) untuk workload read-heavy. Mesin ini menyimpan set hasil dan melayani kueri berulang langsung dari memori—tanpa perlu melakukan parsing ulang, optimasi ulang, atau eksekusi ulang SQL.

Cara kerja

Saat sebuah kueri dijalankan, Fast Query Cache menyimpan set hasilnya. Jika kueri yang sama dijalankan kembali sebelum data dasarnya berubah, hasil yang tersimpan dalam cache langsung dikembalikan. Cache ini secara otomatis dibatalkan ketika data dimodifikasi.

Fast Query Cache mengatasi tiga keterbatasan utama query cache native MySQL:

KeterbatasanCara Fast Query Cache mengatasinya
Bottleneck konkurensi: Query cache native MySQL menggunakan global lock yang membuat akses menjadi serial di bawah beban konkurensi tinggi, sehingga performa semakin menurun seiring peningkatan jumlah core CPU.Fast Query Cache menggantikan global lock dengan mekanisme sinkronisasi tanpa lock, memungkinkan beberapa core CPU menangani kueri secara paralel tanpa kontensi.
Reklamasi memori yang buruk: Query cache native MySQL mengalokasikan blok memori tetap di awal dan tidak dapat mereklamasinya secara efisien, sehingga memori tidak termanfaatkan optimal.Fast Query Cache menggunakan alokasi memori dinamis untuk segera mereklamasi entri cache yang tidak valid, menjaga penggunaan memori tetap ringkas dan fleksibel.
Penurunan performa pada rasio hit rendah: Query cache native MySQL menambahkan overhead yang justru memperlambat kueri ketika rasio hit cache rendah.Fast Query Cache memantau rasio hit cache secara real time dan menyesuaikan kebijakan caching-nya secara dinamis untuk menjaga performa stabil meskipun tingkat hit turun atau workload mencampurkan operasi baca dan tulis.
Query cache native MySQL telah dihapus di MySQL 8.0. Fast Query Cache adalah penggantinya yang dibangun khusus untuk PolarDB.

Versi yang didukung

Fast Query Cache tersedia pada versi revisi PolarDB for MySQL berikut:

Versi PolarDBVersi revisi minimum
PolarDB for MySQL 8.08.0.1.1.5
PolarDB for MySQL 5.75.7.1.0.15
PolarDB for MySQL 5.65.6.1.0.29

Untuk memeriksa versi revisi kluster Anda, lihat Query the engine version.

Kapan menggunakan fast query cache

Fast Query Cache memberikan manfaat paling besar ketika:

  • Workload Anda read-heavy — jumlah operasi baca jauh lebih banyak daripada tulis.

  • Kueri sering diulang, sehingga rasio hit cache tetap tinggi (di atas ~60%).

  • Jumlah besar permintaan baca konkuren mendapat manfaat dari pelayanan berbasis memori.

Hindari mengaktifkan Fast Query Cache, atau atur ke mode DEMAND, ketika:

  • Throughput tulis tinggi atau data sering berubah. Mengaktifkan cache dalam skenario ini dapat mengurangi QPS sekitar 2%.

  • Hanya sedikit kueri yang diulang, sehingga rasio hit cache tetap rendah.

Aktifkan fast query cache

Setiap spesifikasi kluster PolarDB mencakup kapasitas memori yang telah dialokasikan untuk Fast Query Cache. Untuk mengaktifkan fitur ini, atur parameter yang sesuai dalam konfigurasi kluster atau node Anda. Untuk petunjuknya, lihat Specify cluster and node parameters.

Versi PolarDBParameterNilai yang harus diatur
PolarDB for MySQL 8.0loose_query_cache_typeON
PolarDB for MySQL 5.6 atau 5.7query_cache_type1

Kelola fast query cache

Kontrol perilaku caching dengan loose_query_cache_type

Gunakan loose_query_cache_type untuk mengontrol apakah Fast Query Cache selalu aktif, opsional, atau dinonaktifkan. Atur parameter ini di tingkat kluster, atau timpa di tingkat session untuk workload tertentu.

NilaiPerilaku
OFF (default)Fast query cache dinonaktifkan.
ONFast query cache aktif untuk semua kueri. Tambahkan SQL_NO_CACHE pada kueri untuk mengecualikannya dari caching.
DEMANDFast query cache tidak aktif secara default. Tambahkan SQL_CACHE pada kueri agar disimpan dalam cache.

Pilih mode yang sesuai dengan workload Anda:

  • Throughput tulis tinggi atau pembaruan data sering — gunakan OFF untuk menghindari overhead caching.

  • Banyak kueri lambat yang diulang atau rasio hit cache tinggi — gunakan ON untuk memaksimalkan peningkatan QPS.

  • Workload campuran di mana hanya beberapa kueri yang mendapat manfaat — gunakan DEMAND, lalu tambahkan SQL_CACHE pada kueri yang sering diulang:

SELECT SQL_CACHE id, name FROM customer;

Kontrol masa berlaku entri cache dengan query_cache_lease_time

Fast Query Cache mereklamasi memori secara dinamis. Jika set hasil yang tersimpan dalam cache tidak dirujuk selama durasi yang ditentukan oleh query_cache_lease_time (dalam detik), entri cache tersebut dilepas dan memorinya direklamasi.

Nilai default-nya adalah 3600 detik (1 jam).

Tolok ukur performa

Tolok ukur berikut menunjukkan dampak QPS dari mengaktifkan Fast Query Cache (PolarDB-QC) dibandingkan menonaktifkannya (QC-OFF).

Lingkungan pengujian:

ParameterNilai
KlusterPolarDB for MySQL 8.0 Cluster Edition, 8 core, memori 64 GB
Memori cache4 GB
Tool pengujianSysbench
Data pengujian25 tabel × 40.000 baris; 25 tabel × 400.000 baris
Kasus ujioltp_read_only, oltp_point_select, oltp_read_write dengan rand-type = special atau uniform
Semua hasil didasarkan hanya pada node primary.

Rangkuman hasil:

SkenarioRasio hit cachePerubahan QPS
Rasio hit tinggi (Kasus 1, 3, 4, 5, 7)63%–99%+53% hingga +106%
Rasio hit rendah (Kasus 2, 6)Rendah-3% atau kurang
Trafik baca-tulis campuran-2% atau kurang

Kasus 7 (oltp_point_select special, 400.000 baris) mencapai rasio hit cache 99% dan menunjukkan peningkatan QPS terbesar.

Kasus uji dan grafik:

  • Kasus 1: 25 tabel × 40.000 baris, rand-type = special, oltp_read_only 1

  • Kasus 2: 25 tabel × 40.000 baris, rand-type = uniform, oltp_read_only 2

  • Kasus 3: 25 tabel × 40.000 baris, rand-type = special, oltp_point_select 3

  • Kasus 4: 25 tabel × 40.000 baris, rand-type = uniform, oltp_point_select 4

  • Kasus 5: 25 tabel × 400.000 baris, rand-type = special, oltp_read_only 5

  • Kasus 6: 25 tabel × 400.000 baris, rand-type = uniform, oltp_read_only 6

  • Kasus 7: 25 tabel × 400.000 baris, rand-type = special, oltp_point_select 7

  • Kasus 8: 25 tabel × 400.000 baris, rand-type = uniform, oltp_point_select 8

  • Kasus 9: 25 tabel × 400.000 baris, rand-type = special, oltp_read_write 9

Kompatibilitas

Fast Query Cache kompatibel dengan fitur konsistensi global (mode kinerja tinggi). Namun, jika Fast Query Cache dan konsistensi global (mode kinerja tinggi) diaktifkan secara bersamaan serta optimasi MTT untuk konsistensi global (mode kinerja tinggi) juga diaktifkan, maka optimasi MTT menjadi tidak aktif.

Untuk detail tentang konsistensi global (mode kinerja tinggi), lihat Overview.