Teknolojinin Geldiği Nokta

Egitim

Mysql Optimizasyonu nasıl yapılır ? Mysql Hızlandırma

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.

Mysql Optimizasyonu

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