Mysql sorgu önbellekleme (Query cache)

Mysql sorgu önbellekleme adlı yazımızdan hepinize merhabalar. Bildiğiniz gibi mysql bizim can yoldaşımız ve PHP ile abi kardeş gibiler. Veritabanı gerektiren her yazılımda mutlaka mysql kullanıyoruz ve neredeyse tüm veritabanı işlemlerimizi mysql ile yürütüyoruz. Doğal olarak yüzlerce sorgu kullanmak zorunda kalıyoruz. Sorguların çok fazla olması ve düzgün optimize edilmemesi sonucunda veritabanı sunucumuzun CPU kullanımı çok fazla olmaktadır. Bu durum sitemizin hızın çok çok fazla etkilemektedir.

Sunucunun sorgulara yanıt vermesi sorgunun index yapısına ve döndürdüğü satır sayısına göre değişmektedir. Sorgu sayımız arttıkça site hızımız düşmektedir. Peki bu durumun nasıl önüne geçebiliriz ?

Tabii ki de mysql sorgu önbellekleme (query cache) özelliği sayesinde. Bu özellik sorguları önbellekleyerek RAM’e aktarıyor ve biz bir sorgu yaptığımızda, bu sorgunun bir karşılığı var ise direk RAM’den bize geri döndürüyor. Böylece mysql’in yükünü azaltmış oluyoruz ve ciddi bir performans artışı elde ediyoruz.

Mysql’de sunucu önbellekleme özelliği varsayılan olarak kapalı gelmektedir. Sorgu önbellekleme özelliğini açmak için mysql ayar dosyası my.cnf içine, bu dosya yok ise my.ini dosyasına aşağıdaki kodu ekleyerek mysql sorgu önbellekleme özelliğini açabilirsiniz.

query_cache_size = 32M

 

Mysql sunucumuzu yeniden başlattıktan sonra artık sorgu önbellekleme özelliğinden yararlanabiliyoruz. Aslında yapmamız gereken her şey bu kadar. Artık bütün mysql sorgularımız otomatik olarak önbelleklenecektir. Sorgularımızda yada php kodlarımızda herhangi bir değişiklik yapmamıza gerek yoktur. Burada dikkat etmemiz gereken önbellek için RAM’de ayırdığımız miktar. Yukarıda bu alanı 32M (Megabayt) olarak belirttik ancak bu değeri çok fazla yükseltirseniz hız kazanacağım derken durum çok daha kötü olabilir. Veritabanı sunucunuzun RAM miktarının %15-20 kadar bir alanının sorgu önbelleklemeye ayırabilirsiniz.

Mysql sorgu önbellekleme özelliği xcache ile karıştırılmamalıdır. İkisi tamamen farklı şeyler. Umarım faydalı olur görüşmek üzere 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Solve : *
22 + 19 =