Merhaba,

Olabildiğince yalın ve teknik terimleri kullanmadan anlatmaya çalışırsak;

INDEX eklenen yapıyı veritabanımız hafızasına alır. Örneğin biz siparişlerimizin bulunduğu tabloda bir WHERE sorgusu başlattığımızda eğer INDEX kullanmadıysak tüm satırları tek tek sorgulayarak WHERE içeriğine uygun bir veriyi bize sunar. Eğer yüksek kayıt sayısına sahip bir veritabanına sahipseniz bu kesinlikle çok hantal bir sorguya neden olacaktır.

Eğer biz yapılarımıza INDEX eklersek bu veriyi veritabanımız hafızasına alır ve WHERE sorgusu gerçekleştirdiğimizde tüm satırları aramak yerine direkt olarak WHERE değerlerine uygun satırları önümüze getirir. Büyük bir veritabanına sahipseniz bu kesinlikle sorgu süresinde gözle görülür bir hızlandırma sağlayacaktır.

Primary Key değerine sahip yapılara INDEX eklemenize gerek yoktur, çünkü eklediğimiz primary key zaten bir INDEX görevi de görmektedir.

Peki tablomuza nasıl INDEX ekleriz? Öncelikle bunun için phpMyAdmin'e giriş yapıyoruz ve sütunumuzu seçtikten sonra yapılar bölümüne geliyoruz. Buradan en çok sorgu gerçekleştirdiğiniz yapılara bunları ekleyebilirsiniz, bizim tablomuz tüm yapılardan sorgu alan bir tablo olduğu için neredeyse hepsinde mevcut.

Bu işlem için daha fazla yazısının üzerine imlecimizi getiriyor ve çıkan INDEX seçeneğine tıklayarak onaylıyoruz.

Görsel için tıklayınız.

Eğer INDEX değeri verdiğiniz yapıdan bu işlemi kaldırmak istiyorsanız yapıların altında yer alan kaldırabilirsiniz.

Görsel için tıklayınız.

Bunun yanı sıra oluşturduğunuz yapıları amacına uygun kullanmakta veritabanı verimliliğini arttıracak bir özelliktir. Örneğin sadece tarih tuttuğunuz bir yapıya DATETIME yerine VARCHAR değeri verirseniz bu yanlış bir kullanım olur. Gerçekleştirdiğiniz ORDER BY işlemlerinde de sıralamayı tarih olarak değil sayıların büyüklük küçüklüğüne göre sıralar.

İyi çalışmalar.