Tüm Ürünler
Search
Belge Merkezi

PolarDB:Fast Query Cache

Son Güncelleme:Oct 07, 2026

Fast Query Cache, okuma yoğunluklu iş yüklerinde saniye başına sorgu sayısını (QPS) artıran PolarDB yerel bir önbellek motorudur. Sonuç kümelerini önbelleğe alır ve tekrarlanan sorguları SQL'i yeniden ayrıştırmadan, yeniden optimize etmeden veya yeniden çalıştırmadan doğrudan bellekten sunar.

Nasıl çalışır

Bir sorgu çalıştırıldığında Fast Query Cache sonuç kümesini depolar. Altta yatan veriler değişmeden aynı sorgu tekrar çalıştırılırsa önbelleğe alınmış sonuç anında döndürülür. Veriler değiştirildiğinde önbellek otomatik olarak geçersiz kılınır.

Fast Query Cache, MySQL yerel sorgu önbelleğinin üç temel sınırlamasını çözer:

Sınırlama Fast Query Cache bu sorunu nasıl çözer
Eşzamanlılık darboğazı: MySQL yerel sorgu önbelleği, yüksek eşzamanlılık altında erişimi seri hale getiren genel bir kilit kullanır; bu durum CPU çekirdek sayısı arttıkça performansın daha da düşmesine neden olur. Fast Query Cache, genel kilidi kilit içermeyen bir senkronizasyon mekanizmasıyla değiştirerek birden çok CPU çekirdeğinin çekişme olmadan sorguları paralel olarak işlemesine olanak tanır.
Zayıf bellek geri kazanımı: MySQL yerel sorgu önbelleği sabit bir bellek bloğu önceden ayırır ve bunu verimli bir şekilde geri kazanamaz; bu durum belleğin yetersiz kullanılmasına yol açar. Fast Query Cache, geçersiz önbellek girdilerini anında geri kazanmak için dinamik bellek tahsisi kullanır; böylece bellek kullanımı hafif ve esnek kalır.
Düşük isabet oranlarında performans düşüşü: MySQL yerel sorgu önbelleği, önbellek isabet oranı düşük olduğunda sorguları yavaşlatabilen ek yük getirir. Fast Query Cache, önbellek isabet oranlarını gerçek zamanlı olarak izler ve önbellekleme ilkelerini dinamik olarak ayarlayarak isabet oranları düştüğünde veya iş yükü okuma ve yazma işlemlerini karıştırdığında bile kararlı performansı korur.
MySQL yerel sorgu önbelleği MySQL 8.0'da kaldırılmıştır. Fast Query Cache, özellikle PolarDB için oluşturulmuş bir alternatiftir.

Desteklenen sürümler

Fast Query Cache aşağıdaki PolarDB for MySQL revizyon sürümlerinde kullanılabilir:

PolarDB sürümü Minimum revizyon sürümü
PolarDB for MySQL 8.0 8.0.1.1.5
PolarDB for MySQL 5.7 5.7.1.0.15
PolarDB for MySQL 5.6 5.6.1.0.29

Kümenizin revizyon sürümünü kontrol etmek için bkz. Motor sürümünü sorgulama.

Fast Query Cache ne zaman kullanılır

Fast Query Cache aşağıdaki durumlarda en fazla faydayı sağlar:

  • İş yükünüz okuma ağırlıklıdır — yazma işlemlerine kıyasla okuma işlemleri önemli ölçüde daha fazladır.

  • Sorgular sık sık tekrarlanır ve önbellek isabet oranı yüksek (%60'ın üzerinde) kalır.

  • Büyük sayıda eşzamanlı okuma isteği bellekten sunumdan yararlanır.

Aşağıdaki durumlarda Fast Query Cache'i etkinleştirmekten kaçının veya DEMAND moduna ayarlayın:

  • Yazma aktarım hızı yüksekse veya veriler sık sık değişiyorsa. Bu senaryoda önbelleği etkinleştirmek QPS'yi yaklaşık %2 oranında azaltabilir.

  • Tekrarlanan sorgu sayısı azsa ve önbellek isabet oranı düşük kalıyorsa.

Fast Query Cache'i etkinleştirme

Her PolarDB kümesi teknik özelliği, Fast Query Cache için önceden ayrılmış bir bellek kapasitesi içerir. Özelliği etkinleştirmek için küme veya düğüm yapılandırmanızda ilgili parametreyi ayarlayın. Talimatlar için bkz. Küme ve düğüm parametrelerini belirtme.

PolarDB sürümü Parametre Ayarlanacak değer
PolarDB for MySQL 8.0 loose_query_cache_type ON
PolarDB for MySQL 5.6 veya 5.7 query_cache_type 1

Fast Query Cache yönetimi

loose_query_cache_type ile önbellekleme davranışını kontrol etme

Fast Query Cache'in her zaman aktif mi, isteğe bağlı mı yoksa devre dışı mı olacağını kontrol etmek için loose_query_cache_type parametresini kullanın. Bu parametreyi küme düzeyinde ayarlayın veya belirli iş yükleri için oturum düzeyinde geçersiz kılın.

Değer Davranış
OFF (varsayılan) Fast Query Cache devre dışı bırakılır.
ON Fast Query Cache tüm sorgular için aktiftir. Bir sorguyu önbellekleme dışında tutmak için sorguya SQL_NO_CACHE ekleyin.
DEMAND Fast Query Cache varsayılan olarak pasiftir. Bir sorguyu önbelleğe almak için sorguya SQL_CACHE ekleyin.

İş yükünüze uygun modu seçin:

  • Yüksek yazma aktarım hızı veya sık veri güncellemeleri — önbellekleme ek yükünden kaçınmak için OFF kullanın.

  • Çok sayıda tekrarlanan yavaş sorgu veya yüksek önbellek isabet oranı — QPS kazancını en üst düzeye çıkarmak için ON kullanın.

  • Yalnızca bazı sorguların fayda sağladığı karışık iş yükü — DEMAND kullanın ve ardından sık tekrarlanan sorgulara SQL_CACHE ekleyin:

SELECT SQL_CACHE id, name FROM customer;

query_cache_lease_time ile önbellek girdisi ömrünü kontrol etme

Fast Query Cache belleği dinamik olarak geri kazanır. Önbelleğe alınmış bir sonuç kümesi query_cache_lease_time (saniye cinsinden) tarafından belirtilen süre boyunca referans edilmezse önbellek girdisi serbest bırakılır ve belleği geri kazanılır.

Varsayılan değer 3600 saniyedir (1 saat).

Performans kıyaslamaları

Aşağıdaki kıyaslama, Fast Query Cache'in (PolarDB-QC) etkinleştirilmesinin devre dışı bırakılmasına (QC-OFF) kıyasla QPS üzerindeki etkisini göstermektedir.

Test ortamı:

Parametre Değer
Küme PolarDB for MySQL 8.0 Cluster Edition, 8 çekirdek, 64 GB bellek
Önbellek belleği 4 GB
Test aracı Sysbench
Test verileri 25 tablo × 40.000 satır; 25 tablo × 400.000 satır
Test senaryoları oltp_read_only, oltp_point_select, oltp_read_write ile rand-type = special veya uniform
Tüm sonuçlar yalnızca birincil düğüme dayanmaktadır.

Sonuç özeti:

Senaryo Önbellek isabet oranı QPS değişimi
Yüksek isabet oranı (Senaryolar 1, 3, 4, 5, 7) %63–%99 +%53 ila +%106
Düşük isabet oranı (Senaryolar 2, 6) Düşük -%3 veya daha az
Karışık okuma-yazma trafiği — -%2 veya daha az

Senaryo 7 (özel oltp_point_select, 400.000 satır) %99 önbellek isabet oranına ulaşır ve en büyük QPS iyileştirmesini gösterir.

Test senaryoları ve grafikler:

  • Senaryo 1: 25 tablo × 40.000 satır, rand-type = special, oltp_read_only 1

  • Senaryo 2: 25 tablo × 40.000 satır, rand-type = uniform, oltp_read_only 2

  • Senaryo 3: 25 tablo × 40.000 satır, rand-type = special, oltp_point_select 3

  • Senaryo 4: 25 tablo × 40.000 satır, rand-type = uniform, oltp_point_select 4

  • Senaryo 5: 25 tablo × 400.000 satır, rand-type = special, oltp_read_only 5

  • Senaryo 6: 25 tablo × 400.000 satır, rand-type = uniform, oltp_read_only 6

  • Senaryo 7: 25 tablo × 400.000 satır, rand-type = special, oltp_point_select 7

  • Senaryo 8: 25 tablo × 400.000 satır, rand-type = uniform, oltp_point_select 8

  • Senaryo 9: 25 tablo × 400.000 satır, rand-type = special, oltp_read_write 9

Uyumluluk

Fast Query Cache, global tutarlılık (yüksek performans modu) özelliğiyle uyumludur. Ancak hem Fast Query Cache hem de global tutarlılık (yüksek performans modu) aynı anda etkinse ve global tutarlılık (yüksek performans modu) için MTT optimizasyonu da etkinleştirilmişse MTT optimizasyonu pasif hale gelir.

Global tutarlılık (yüksek performans modu) hakkında ayrıntılar için bkz. Genel Bakış.