Şimdi Ara

mySQL İndex Mantığı Nasıl Çalışır?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
339
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • İyi günler arkadaşlar.
    index(k_adi,k_sifre,k_tarih) şeklinde index oluşturduğumuzu varsayalım.Bildiğimiz gibi bu index aynı zamanda index(k_adi) ve index(k_adi,k_sifre) kombinasyonlarınıda kapsayacaktır.

    ......where k_adi='..'
    ......where k_adi='..' and k_sifre='..'
    ......where k_adi='..' and k_sifre='..' and k_tarih='..'


    Yukarıdaki 3 sorgumuzda da oluşturduğumuz index devreye girebilecektir çünkü kombinasyonlara uymakta.
    Benim merak ettiğim konu ise aşağıdaki şekilde sorgumuzu oluştursaydık
    ......where k_tarih='..' and k_sifre='..' and k_adi='..'
    Yukarıdaki sorgumuzda ilk olarak k_tarih kolonunda arama yapmadan önce index olup olmadığına bakacak ve bizim oluşturduğumuz indexin kombinasyonlarını kapsamadığı için index yerine tablomuzda tek tek arama yapıp uygun satırları bulacak ve and olduğu için ise bu satırları filtreleme yapacak.Bundan sonra ise k_sifre kolonunda arama yapmadan önce index olup olmadığına bakacak ve yine indeximizin kombinasyonlarına uymadığı için tablomuza bakıp tek tek arama yapacak ve uygun satırları bulacak daha sonra and olduğu için tekrar bir filtreleme yapacak.En son ise k_adi kolonumuzda index olup olmadığına bakacak indeximizin index(k_adi) kombinasyonuna uygun olduğu için bu kolonu tabloda aramak yerine direkt indexten bakıp uygun satırları söyleyebilecek.
    Veritabanı yukarıdaki anlattığım şekilde mi indexleri kullanıyor bunu sormak istiyordum eğer öyle ise ......where k_adi='..' and k_sifre='..' and k_tarih='..' yerine ......where k_tarih='..' and k_sifre='..' and k_adi='..' şeklinde koşulların sırasını değiştirmemiz sorgu süremizi baya uzatacağa benziyor.



    < Bu mesaj bu kişi tarafından değiştirildi MrAykun -- 5 Mayıs 2016; 14:07:55 >







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.