MySQL Query Cache nedir?
Mysql Query Cache sorguların hafızada tutularak daha sonraki aynı sorguların daha hızlı sonuç vermesini sağlayan teknolojidir. Örneğin birimlere göre ortalama maaş listesini veren bir sorgu ilk defa çalıştırıldığında 10 saniye vakit alıyorsa, bu sorgu ikinci kez çalıştırıldığında aldığı vakit 1 saniyeye inecektir. Tabi bu saniye değerleri örnek, normalde bir saniyenin altına inmektedir.
Maliyeti ise bu teknoloji için ayrılacak bellek alanı kadardır.
query cache değişkenlerini şu sorgu ile listeleyebilirsiniz: mysql> show variables like 'query%';
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| query_alloc_block_size | 8192 |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 0 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
+------------------------------+---------+
query_cache_type değişkeni teknolojinin devrede olduğnu belirtir. Fakat pratikte teknoloji kullanılmadığı gözükmektedir, çünkü query_cache_size değişkeni 0'ı gösteriyor. Bu değişken, bellekte ne kadar yer ayrıldığını gösterir. Hiç ayrılmamış.
Bu değişkene değer atayarak query_cache_type pratikte de çalışır hale getirilir. mysql> set global query_cache_size=50000000;
| Qcache_inserts | ön belleğe alınmış sorgu adeti |
|---|---|
| Qcache_hits | ön bellekteki sorguların kullanım adeti |
| Qcache_free_memory | boş bellek miktarı |
| query_cache_limit | ön belleğe alınacak sorguların maksimum bellek miktarı |
| Qcache_not_cached | ön belleğe alınmmamış sorgu adeti |
Detaylı makale: Mysql query cache
