Mysql Optimizasyonu
Mysql Optimizasyonu yapmak sunucu hızı arttırmak için ilk yapmanız işlem diyebiliriz. Web hizmetleri için hepimiz hızlı, güvenilir ve güvenli bir ortama ihtiyacımız var. Neredeyse tüm web sitelerinin verileri depolamak için kendi veritabanları vardır. Veritabanı olmayan sitelerin zaten hızlandırmaya pek ihtiyacı olmuyor. MySQL, kullanıcı veritabanlarını yönetmek için en yaygın kullanılan veritabanı servislerinden biridir. Mysql servisi açık kaynak kodludur. Kullanımı gerçekten basit ve kullanıcı dostu bir yazılımdır.
Sunucu hizmetlerinde MySQL servisi CPU , Ram , IO veya diğer kaynaklarda ki yüksek kullanım yavaşlamaya neden olabilir. Sunucu yada web sayfaların yavaşlamasına ve hatta sistemin yanıt veremeyecek duruma gelmesine neden olabilir. Düzgün yapılan bir linux mysql optimizasyonu ile sunucu yüksek kaynak kullanımı veya site hız sorunu normal durumuna düşürebilir. Bu tarz durumlarda aklımıza ilk gelen yükseltmek olur. RAM, CPU ve HDD gibi donanım yükseltme işlemlerine başlamadan önce daima mysql optimizasyonu deneyin. Bunu yaparak cebinizden çok para çıkmasına engel olun. Basitçe anlatmak gerekirse, herhangi bir donanım yükseltmeden sunucu performansını yükseltebilirsiniz. Doğru yapılan MySQL optimizasyonu, sunucudaki toplam yükünü yarısı kadar düşürebilir.
Linux Mysql Sunucusu Nasıl Optimize Edilir ?
Bir MySQL sunucusunu doğru olarak optimize etmek için gözlemleme gerekmektedir. Öncelikle MySQL sunucusunu yeniden başlatmadan kontrol yapılmalı. En iyi sonuçlar için Mysql servisinin en az 24 saatlik çalısır durumda kalması önemlidir. Mysql cache süreleri, döngüye giren mysql sorguları vb. istenmeyen durumlar en iyi bu sekilde analiz edilebilir. Mysql Optimizas yonu için üç ana konu vardır. Bunlar;
1- Mysql monitor etmek
2- Logları İncelemek
3- Mysql Config ayarlarını düzenlemek
Mysql üzerindeki bazı komutlarla monitor işlemi yapabilirsiniz.
mysqladmin -u root -p -i 1 processlist
yada
mysqladmin -u root -p -i 1 proc stat
- -u veritabanı kuklanıcı adı
- -p şifre
- -i 1 aralık bir saniyedeki değer
Bildiginiz üzere mysql config dosyası /etc/my.cnf şeklindedir. Bu dosyada bulunan degerler Mysql servisinin çalışma ayarlarını tutyor. Bu ayarların doğru yapılabilmeniz için Mysql analiz yapmanız gerekiyor. Örnek olarak max_connection değerinden bahsedelim.
mysqladmin -uroot -p variables|grep max_connections
Çıktı;
[root@srv ~]# mysqladmin -uroot -p variables|grep max_connections
Enter password:
| max_connections | 151 |
Dilerseniz bu işlemi Mysql login işlemini gerçekletirip show sorgusuyla yapabilirsiniz.
mysql> show variables like ‘max_connections’;
+—————–+————–+
| Variable_name | Value |
+—————–+————–+
| max_connections | 151 |
+—————–+————–+
1 row in set (0.00 sec)
Bu değeri arttırmak için;
SET GLOBAL max_connections = 1000;
Mysql Thread Cache Size
Thread Cache Size default Mysql ayarlarında kapalı olarak gelmektedir. Performanas için bu özelligi açmanız gerekiyor. Mysql önbellekleme özelligine sahip parametrelerlinden birtanesidir. My.cnf üzerindedeki degeri;
thread_cache_size= şeklindedir.
Table Open Cache
Açık tablo cacheleme işlemleri için gereki parametredir.
table_open_cache= şeklindedir.
Query Cache
Bu parametre sorgu sonuçlarını önbelleğe almak için ayrılan bellek miktarıdır. MySQL veritabanlarından sonuçları hızlandıracaktır. Bu değişken varsayılan olarak açık gelmektedir. Sorgu cache işlemi üç bölümden oluşur;
1- query_cache_type
2- query_cache_size
3- query_cache_limit
Key Buffer Size
MyISAM tablolarının dizin blokları arabelleğe alınır ve tüm iş parçacıkları tarafından paylaşılır. key_buffer_size dizin blokları için kullanılan arabellek boyutudur.
key_buffer_size= şeklindedir.
Mysql parametreleri detaylı bilgi için tıklayın
Mysql Log İnceleme
1- Error Log
MySQL hata logları , MySQL veri dizini /var/lib/mysql altında bulunur. Varsayılan olarak hata günlüğü: /var/lib/mysql/hostname.err şeklidedir. Logları anlık olarak izlemek için;
tail -f /var/lib/mysql/hostname.err
2- General Log
my.cnf dosyasında kapalı olarak gelir. Buradan aktif hale getirmeniz gerekiyor.
3- Slow Query Log
Default mysql ayarlarında kapalı gelmektedir. Aktif etmek için my.cnf dosyanıza aşagıdaki eklemeyi yapmalısınız.
slow_query_log=/var/lib/mysql/slow.log