MySQL Optimizasyonu: Indexler

MySQL, PHP ile en çok kullanılan veritabanı sistemidir. PHP ile geliştirilen web uygulamalarının karmaşıklığı arttıkça MySQL’in stabil bir şekilde çalışması büyük önem arz etmektedir. Üç yazıdan oluşacak serimizde MySQL’i optimize edeceğiz. MySQL’i optimize ederek performansını artıracağız. Performansı azaltan tehditlerin üzerinde durup bunları nasıl gidereceğimizi göreceğiz. İlk yazımızda indexleri iyileştirme üzerinde duracağız.

MySQL Indexleri Nedir?

Eğer şu ana kadar MySQL indexleri ile çalışmamışsanız büyük ihtimalle MySQL veritabanınızda önemli derecede peroformans düşüklüğü vardır. MySQL indexlerini kitaplardaki içindekiler bölümüne benzetebiliriz. Kitaplarda içindekiler kısmına bakarak aradığımız şeyi nasıl kolayca buluyorsak MySQL veritabanlarındaki indexlerde de aradığımız şeyi kolaylıkla bulabiliriz. Eğer kitabımızın içindekiler kısmı yoksa bütün kitaba bakmak zorunda kalırız. Aynı şekilde MySQL veritabanımızın da indexi yoksa bütün veritabanını aramak gerekir.
Kısaca indexleri veritabanında aradığımızı kolaylıkla bulmamızı sağlayan yol göstericiler olarak tanımlayabiliriz. Bu nedenle indexler MySQL veritabanımızın performansını önemli derecede artırırlar. MySQL indexleri oluşturulur ve saklanır. Bundan dolayı update ve insert sorgularında çok az bir miktarda yavaşlama olur ve diskte biraz daha fazla yer kaplar. Eğer tablolarınıza doğru bir şekilde index tanımladıysanız genelde update ve insert ederken uyarıya gerek kalmaz.

Bir kaç satırdan oluşan küçük çaplı tablolar için index oluşturmak akıl karı değildir. Hız açısından bir faydası olmaz. Binlerce satırlık tablolarda indexler kullanıldığında performansa yaptığı katkı gözle görülür bir şekilde artacaktır.

Bu yazımızda indexleri oluşturma değil oluşturulmuş indexleri iyileştirme üzerinde duracağız.

Yinelenen İndexleri Bulma

Yinelenen indexler select sorgusunu yavaşlatmazlar. Bunun yanında insert ve update sorugularını yavaşlatır ve diskte daha fazla yer kaplar. Aşırı yinelenen indexlerden kaçınmak gerekir. Percone Toolkit kullanarak yinelenen indexleri bulabiliriz. Bu araç veritabanını analiz eder ve yinelenen indexleri gösterir. İndirmek için tıklayın. Bu araç veritbanlarımızı tarayarak yinlenen indexler hakkında bilgi verir. Yukarıdaki linkten programı indirip kurun. Uçbirimi açıp root yetkilerini aldıktan sonra aşağıdaki kodu yazın.

pt-duplicate-key-checker -u MySQL KULLANICI ADI -p MySQL ŞİFRE

Karşınıza aşağıdaki gibi bir ekran gelecektir.

Percona Toolkit ve MySQL Optimizasyonu

Bende şu an yinelenmiş index yok. Eğer olsaydı Total Duplicate Indexes ve Duplicate Index Size gibi değerler ve yinelenen indexlerin bilgileri yer alırdı. Eğer tablonuzda yinelenen indexler varsa bunları kaldırın.

Serinin MySQL Optimizasyonu: Ayarlar başlıklı bir sonraki yazısını okumanızı tavsiye ederiz.

About This Author

Uzun yıllardır yazılım ile uğraşıyorum. PHP ile başladığım yazılım hayatıma şu an PHP'nin yanında Swift ve Python ile devam ediyorum. Bu güne kadar bir çok proje geliştirdim ve yeni projeler geliştirmeye de devam ediyorum. Bu sitede yazılımseverlere faydalı bilgiler vermeye, yazılım geliştirmeye, öğrendiklerimi paylaşmaya, yeni başlayanlara yol göstermeye ve onlara yardımcı olmaya çalışıyorum.

1 Comment

You can post comments in this post.


  • Faydalı bir paylaşım olmuş teşekkürler. MySQL sürekli kullanıyoruz ama optimizasyon konusunu pek düşünmeyenler var oysaki bu konu olmazsa olmazlardan. Tekrar teşekkürler.

    anar samadov 6 ay ago Reply


Post A Reply