EN - FR - DE - ES - IT - PT -

LexiconDream

📇 Dizin

Veritabanı kayıtlarının alınmasını hızlandıran bir veri yapısı.

Dizin

Bir indeks, veri erişimini hızlandırır. İndeks olmadan, veritabanı eşleşen kayıtları bulmak için her satırı tarar. İndeks ile doğrudan ilgili satırlara atlar. İndeks, değerleri konumlara eşleyen ayrı bir veri yapısıdır. Bir kitap indeksi de aynı şekilde çalışır. Bir terim ararsınız ve sayfa numarasını bulursunuz. Bunu bulmak için her sayfayı okumazsınız. Veritabanı da aynı şeyi yapar.

İndekslerin bir maliyeti vardır. Yer kaplarlar. İndeksin de güncellenmesi gerektiğinden ekleme, güncelleme ve silme işlemlerini yavaşlatırlar. Her yazma işlemi daha pahalı hale gelir. Faydası ise daha hızlı okuma işlemleridir. Okuma ağırlıklı iş yükleri için indeksler şarttır. Yazma ağırlıklı iş yükleri için ise çok fazla indeks performansı olumsuz etkiler. Hangi sütunların indeksleneceğini seçmek, sorgu kalıplarını anlamayı gerektirir. WHERE yan tümcelerinde, JOIN koşullarında ve ORDER BY yan tümcelerinde kullanılan sütunlar iyi adaylardır. Boolean bayrağı gibi düşük kardinaliteli sütunlar ise kötü adaylardır çünkü indeks aramayı çok fazla daraltmaz. Bileşik indeksler birden fazla sütunu kapsar ve birden fazla alanda filtreleme yapan sorgulara hizmet edebilir. Bileşik indeksteki sütunların sırası önemlidir. Veritabanı, önde gelen sütun üzerindeki sorgular için bileşik indeks kullanabilir, ancak yalnızca sondaki sütunlar için kullanamaz. İndeks tasarımı bir denge meselesidir. Amaç, yazma işlemlerini gereğinden fazla yavaşlatmadan önemli sorguları hızlandırmaktır.

Dizin türleri

İndeks bir kısayoldur. Yazma hızı ve depolama alanından ödün vererek okuma hızını artırır. Okuma işlemlerinin en önemli olduğu yerlerde kullanın.

Comments (3)

  1. Derek S.
    Database indexes are a tradeoff. They speed up reads but slow down writes and take up space. Knowing when to add one is an art.
  2. Pam L.
    A primary key automatically creates an index. That's something a lot of beginners don't realize.
  3. Chris T.
    Without an index the database has to scan every row. With one it can jump straight to the data. Huge performance difference.

Leave a comment