En basit anlatımıyla, Kisi diye tablon olsun ve üzerinde Ad,Soyad,TCKimlik değerlerini tutumuş ol ve içinde tüm Türkiye'nin datası olsun. Eğer hiç index yoksa Ad = 'Mahmut' diye arama yaptığında DB üzerinde arama yaparsan 70 milyon kayıda tek tek gidip Ad = 'Mahmut' mu diye kontrol eder. Eğer Ad alanını indexlediysen içerisindeki verilere göre bir ağaç yapısı (B+ tree) oluşturup arka planda bu verilerin adreslerini tutar, sen de daha kolay erişirsin.
stackoverflow.com
her konuda olduğu gibi burada da bir trade-off olduğu unutulmamalı. index'ler sorgu performanslarında ciddi iyileşmeler sağlayabilir, ancak index maintenance maliyeti de düşünülmeli; tablonun gördüğü her dml index'in de düzenlenmesini gerektirecektir çünkü. ayrıca her index fiziksel olarak veritabanında yer kaplar, saklama maliyeti de göz önüne alınmalı tablonun indexleri belirlenirken.
son olarak indexler oltp sistemlerde tercih edilir, kisi tablosundaki 70 milyon kaydın tamamını ya da belli bir yüzdeden fazlasını döndüren sorgularda index kullanmak sorguyu daha da yavaşlatacaktır.
@altikereyedi doğru soylemiş. %1 den fazlasını döndürüyorsa çoğu DB o indexi kullanmaz bile.