Mysql optimizasyonu icin sunucunuzda bulunan my.cnf dosyasini kullanmamiz gerekli. Genelde default olarak icerisinde bir kac ayar mevcuttur, ancak bu standart oldugu icin ilerde sitemizin yukunu kaldiracak duzeyde malesef olamiyor. Cunku kullanilan script cok fazla sql sorgusu iceriyorsa siddetle SQL CACHE ayarlarini acmanizi tavsiye ederim. Bu Hem sitenizin acilisinda, hemde kullanirken bir hiz kazandiracagi gibi, sunucuda agirlasan yukun birazini sirtlayacaktir..
Oncelikle bu uygulamayi yapabilmeniz icin sunucu sahibi olmaniz gerek ve ssh baglanti izniniz olmali.. Baslamadan once duzenleme yaptiginiz dosyalari yedeklemeyi unutmayin.
Sunucumuzdaki my.cnf dosyasini aciyoruz. Bu genelde asagidaki yolda bulunur:
/etc/my.cnf (centos, cpanel ve pleskde denenmistir)
bu dosyayi actiginizda icerisi bos ise yada belli kodlar varsa siz fazla kurcalamadan asagidaki kodlari [mysqld] sekmesinin altinda bir yere ekleyin:
thread_cache_size = 128 key_buffer = 256M query_cache_type = 1 query_cache_size = 128M query_cache_limit = 4M table_cache = 1000Cok fazla tablolu siteleriniz varsa table_cache = 1000 kismindaki sayiyi artirmanizi oneririm yada az ise azaltmanizi..
Bu ayarlari kendinize gore duzenleyebilirsiniz. Genelde her sunucu ayni ozelliklerde olmuyor. Eger ram ve sunucu ozelliginiz cok dusuk ise verilen limitleri dusurebilirsiniz. Ancak oncesinde sql cachede etkili olan kisimlarin aciklamasini yapmamiz gere, bundan sonrasinda mantikli sonuclar ile sunucunuza goze duzenleme yapabilirsiniz.
key_buffer = 256M kismi, Myisam index blokları icin kullanilir. Gelen istekler disk yerine hafizadan saglanir.
query_cache_type = 1″ kismi, cachei açtığımızı belirtir. 0 yapınca kapatmis oluyoruz, ancak biz suanda 1 yaparak bu ozelligi aciyoruz.
query_cache_limit = 4M kismi, cachelenecek maximum sorgu limitini belirler, 4mba kadar olan sorgulari cache alarak hafizasinda tutar.
query_cache_size = 128M kismida toplamda cachelenecek dosyalar icin sunucuda kullanilacak maximum alani ifade eder. Artirabilirsiniz, yada dusurebilirsiniz..
table_cache = 1000″ kismi, tablolarin acilmasini ve okunmasini hizlandirmak icin daha once acilan tablolar icin cache olusturmasidir. Myisam tablo yapısında tum tablolar sorgu seklinde sunucuda tutulmaktadir, bunlarin acilip okunmasi gibi islemler icin cacheyi acmak bu sureyi daha hizlandiracagi icin faydasini gosterecektir..
Kullandiginiz sisteme gore inceleme yaparak my.cnf ayarlarini ozellestirebilirsiniz. Bunun icin onerecegim bir yolda hatali ve sorunlu sql sorgularini ogrenmektir. Bunun icin my.cnf dosyasina asagidaki kodlari ekleyerek verilen yolda toplanan hata loglarini inceleyip sorunlu sorgulari ogrenebilirsiniz:
log_slow_queries=/var/log/slow-queries.log long_query_time=10 log-queries-not-using-indexesSonrasinda sorunlu sorgular icin scriptlerinizi optimizasyonudan gecirebilirsiniz.. Simdilik bu kadar yazinin diger serilerinde optimasyon hakkinda kullanilan terimler hakkinda da bilgi verecegim. Gerek kullanici tarafli yazilimlar, gerekse kullanilan scriptler hakkinda da optimasyon onerilerim olacak. Simdilik kolay gelsin..
Kaynak: http://www.kuaza.com/2010/06/14/mysq...mak-1-198.html
Not: cok fazla tecrube sahibi degilim ama denedigim yontemler. Onerisi olanlar yada surasi yanlis diyecenler yazarsa sevinirim, ona gore yaziyi duzenlemeye calisirim..