Versi Hologres 3.1 dan yang lebih baru mendukung fitur cache kueri, yang menyimpan hasil kueri di memori. Saat sistem menerima kueri yang identik atau serupa, hasil yang sesuai akan dikembalikan langsung dari cache. Proses ini menghindari pembacaan data dan beban komputasi, sehingga meningkatkan performa kueri. Cache kueri paling efektif dalam skenario kueri berulang dengan konkurensi tinggi, seperti uji stres dan pelaporan BI, karena secara signifikan meningkatkan efisiensi kueri serta mengurangi pemborosan resource.
Catatan penting
Cache kueri hanya didukung di versi Hologres 3.1 dan yang lebih baru.
CatatanJika instans Anda menjalankan versi sebelumnya, Anda dapat melakukan upgrade instans atau bergabung ke grup DingTalk Hologres untuk meminta peningkatan versi. Untuk petunjuk cara bergabung ke grup DingTalk dukungan online, lihat Bagaimana cara mendapatkan dukungan online lebih lanjut?.
Cache kueri dinonaktifkan secara default. Anda harus mengaktifkannya sebelum menggunakannya.
-- Aktifkan cache kueri. Memerlukan hak istimewa superuser. Berlaku untuk koneksi baru setelah diaktifkan. ALTER DATABASE <database_name> SET hg_experimental_enable_query_cache=on;Hasil cache kueri bersifat weakly consistent. Jika terjadi penulisan data selama periode retensi cache, hasilnya mungkin tidak akurat.
Kueri yang mengandung fungsi RANDOM tidak akan dicache.
Menggunakan Cache Kueri
Memori Hologres dibagi menjadi tiga kategori utama: eksekusi kueri, cache, dan metadata. Cache dapat menggunakan hingga 30% dari total memori instans. Sebagai contoh, jika sebuah worker memiliki batas memori 64 GB, cache-nya dapat menggunakan hingga 20 GB. Cache kueri menggunakan sebagian dari memori cache tersebut.
query_cache_percentage: Atur memori yang dialokasikan untuk Cache Kueri
Anda harus mengalokasikan memori agar cache kueri berfungsi secara efektif.
Memori per worker = 20 GB × query_cache_percentage × 0,01
Total memori di seluruh worker = Memori per worker × jumlah worker
-- Contoh: query_cache_percentage=2 (2%). Memori yang dialokasikan = 20 GB × 2 × 0,01 = 400 MB
SELECT hg_admin_command('set_global_flag', 'query_cache_percentage=2');Atur memori maksimum per hasil yang dicache
Memori maksimum default untuk satu hasil cache adalah 10 MB. Anda dapat mengubah nilai ini menggunakan parameter berikut. Nilai maksimumnya adalah 20 GB.
-- Sesuaikan memori maksimum per hasil cache (default: 10 MB)
ALTER DATABASE <database_name> SET hg_experimental_query_cache_max_kb_per_item=10240;Sesuaikan waktu hidup (TTL) Cache Kueri
Cache Hologres menggunakan kebijakan eviction yang didasarkan pada faktor-faktor seperti batas memori dan periode retensi. Untuk informasi lebih lanjut, lihat Storage technology deep dive. Anda dapat menggunakan parameter berikut untuk menyesuaikan TTL cache kueri.
TTL default adalah 60 detik.
TTL ditentukan dalam satuan detik.
-- Sesuaikan TTL Cache Kueri dalam detik (default: 60 detik)
ALTER DATABASE <database_name> SET hg_experimental_query_cache_expire_time_sec=60;