MySQL Veritabanında Konfigürasyon Optimizasyonu
Varsayılan ayarlar ile kurulmuş MySQL veritabanının kullanım şekillerine göre ayarlanması gerekebilir. Yapılan konfigürasyon ayarlarıyla, veritabanının daha performanslı çalışması sağlanabilir. MySQL’in veritabanı optimizasyonu için kullanılan birçok araç vardır. Bu yazıda;
araçlarıyla optimizasyon yapacağız.
Tuning Primer betiği ile MySQL veritabanı analizleri kolay bir şekilde yapılabilmektedir.
NOT: Bu aracı çalıştırmadan önce, MySQL veritabanının 48 saat boyunca kesintisiz çalışır durumda olması gerekmektedir.
Turning Primer ile veritabanı için aşağıdaki testler yapılmaktadır;
https://launchpad.net/mysql-tuning-primer/trunk adresinde yer alan tuning-primer.sh betiği indirip, çalıştırma yetkisi vererek, testlere başlayabiliriz.
Betik, kırmızı ile işaretli olan satırda, max_connection sayısının yetersiz kaldığını ve bu sayının arttırılması gerektiğini belirtiyor. Yani test sonucu, MySQL baglantılarında bu parametreyle ilgili sıkıntı yaşanmış.
MySQL konfigürasyonunda max_connections sayısı arttırılarak, çözüme ulaşılabilir.
# MySQL başlığı altına;
İkinci adım olarak query_cache_size alanından dolayı uyarı aldık. Bunun için; query_cache_size limitini varolan değer olarak 128 MB belirtilebilir ya da MySQL Tuner (http://mysqltuner.pl/mysqltuner.pl) aracı ile bu alan belirlenebilir.
Betiği çalıştırmaya devam ederek, optimizasyona devam ediyoruz.
Betik, log-slow-queries parametresinin eklenmesini tavsiye ediyor.
Çıkan uyarıda, table_cache alanının yetersiz olduğuna dair uyarı veriliyor.
12326 x 4 = 49304 → 2 ve katları olduğu için 64535 olarak tespit edilir.
NOT: table_cache alanının çok arttırılması durumunda RAM kaybının olacağı göz önünde bulundurulmalıdır.
thread_concurrency = 8 — → CPU x 2 olarak girebilirsiniz.
# Bin dosyasının aktif edilmesi hatalı tabloların ileride tamir edilmesine yardımcı olacaktır.
# replikasyon yapılacak ise, karşı sunucu bilgileri girilip
# yorum alanlarının kaldırılması gerekiyor. Master için Id 1 Slave için 2
Ayarların geçerli olabilmesi için MySQL yeniden başlatılır.
NOT: Herhangi bir hataya karşı, logları kontrol edilmesini tavsiye ediyorum.
MySQL veritabanı performans testi için diğer bir araç olarak, MySQLCheck’i kullanacağız.
1. Veritabanı Kontrolü
3. Bozuk Veritabanlarının Onarımı