MySQL Query Cache Nedir ve Nasıl Monitör Edebiliriz ?

Bu yazımızda Mysql veritabanı sunucusunda Query Cache i ele alacağız.  

Mysql sunucusu,tekrar edilen sorgular için sonuçları memory’de tutularak bu süreçlerin hızlanmasını sağlar. Bunu query cache kullanarak yapabiliriz. Peki Query Cache in parametrelerini nasıl monitör edip nasıl aktif ediyoruzu adım adım göreceğiz.

İlk etapta query_cache_type paramtresini 1 e çekiyoruz. Default ta 0 dır. Daha sonra da Query Cache için kullanacağımız bellek alanını query_cache_size parametresi ile belirliyoruz ki biz örneğimizde 16 MB a SET edeceğiz. Bu ayarları vi /etc/my.cnf altında ekleyebilriz.

query_cache_type               = 1
query_cache_size               = 16MB

Bu parametreleri Config dosyasına işledikten sonra, şimdi ise query cache parametrelerini nasıl monitor ederiz onu inceleyelim.

SHOW STATUS LIKE "qcache%";

Bu parametreleri şimdi tek tek inceleyelim.

Qcache_free_blocks : 

Bitişik memory bloklarının sayısını verir. Bu sayının yüksek olması datanın dağıtık şekilde memory’ de barındığını gösterir.

Bu durumda FLUSH QUERY CACHE komutu ile boş bloklar oluşturulabilir.

Qcache_free_memory: 

Query cache için ayırdığımız memory’ de ki kullanılmayan cache miktarını gösterir.


Qcache_hits: 

Gelen sorgulardan kaçının query cache kullanılarak cevaplandığı sayısını gösterir.

Qcache_inserts: 

Gelen sorgulardan query cache ‘e eklenenlerin sayısını gösterir.

Qcache_lowmem_prunes : 

Query cache ‘in kaç kere mevcut memory’ den taştığını göstermektedir. (Out of memory). Bu durumda sunucumuzda memory kaynağı problemi bulunduğu söylenebilir. Eğer bu değer sürekli olarak artıyorsa ciddi bir fragmantasyon sorunuda oluşabilir.

Qcache_not_cached: 

Cache işlemine uygun olmayan sorguların sayısını gösterir. Yüksek oranla bu sorgular “select” sorgusu dışında kalan sorgulardır.

Qcache_queries_in_cache: 

Sunucuda şu anda cache ‘lenmiş sorgu sayısını gösterir.

Qcache_total_blocks: 

Cache üzerindeki toplam blok sayısını gösterir.

NOT :

 (1 – (Qcache_inserts / Qcache_hits ) ) formulü query cahce hit oranını vermektedir..Eğer oran düşükse problem query_cache_limit değişkeninden kaynaklanıyor olabilir. query_cache_limit query cache’ e eklenecek sorgu sonçlarının mb cinsinden maksimum değeridir. Bu değerin 512 ‘den daha yüksek tutulması önerilmez.

Query Size ı aşağıda ki komut ile sorgulayabilrisiniz.

mysql> SHOW VARIABLES LIKE 'query_cache_size'; 


Aynı şekilde yine aşağıdaki Query le de SET leyebilirsiniz Cache Size ‘ı

mysql> SET GLOBAL query_cache_size = 16777216;

Query Cache Type ın Parametreleri ise aşağıda ki gibidir;

query_cache_type=OPTION
Set the query cache type. Possible options are as follows:
0 : Don’t cache results in or retrieve results from the query cache.
1 : Cache all query results except for those that begin with SELECT S_NO_CACHE.
2 : Cache results only for queries that begin with SELECT SQL_CACHE

Teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *