Veritabanı İndeksleme (Database Indexing) Nedir?
İngilizce: Database Indexing
Veritabanı indeksleme, tabloda aranan satırlara daha hızlı ulaşmak için seçili kolonlarda ek veri yapıları oluşturur.
Veritabanı İndeksleme (Database Indexing) Nedir?
Veritabanı indeksleme, bir tablodaki tüm satırları tek tek taramak yerine aranan değere daha kısa yoldan ulaşmak için kullanılan veri yapılarıdır. Kitaptaki dizin nasıl konuyu sayfa sayfa aramayı engelliyorsa, veritabanı indeksi de uygun sorgularda satır bulmayı hızlandırır.
Nasıl Çalışır?
En yaygın indeks türü B-tree’dir. Eşitlik ve aralık sorgularında, örneğin customer_id = 42 veya created_at > ..., veritabanı önce indeksi okur, sonra ilgili satırların konumuna gider. PostgreSQL gibi sistemlerde GIN, GiST, BRIN ve hash indeksleri de farklı veri türleri ve arama modelleri için kullanılır.
Ne Zaman Faydalıdır?
Sık filtrelenen, sıralanan veya join yapılan kolonlar indeks adayıdır. Bir e-ticaret tablosunda order_id, customer_id, status, created_at gibi alanlar buna örnektir. Primary Key çoğu veritabanında otomatik indeks oluşturur; ancak raporlama ve arama sorguları için ek indeks gerekebilir.
Dikkat Edilecekler
Her indeks yazma maliyeti getirir. INSERT, UPDATE ve DELETE sırasında indeksler de güncellenir; gereksiz indeksler depolama tüketir ve bakım yükü oluşturur. Bu nedenle indeks kararı gerçek sorgu planı, tablo boyutu ve okuma-yazma dengesiyle verilmelidir.
SQL sorgularında doğru indeks seçimi, sorgu optimizasyonu çalışmalarının temel parçalarından biridir.
İlgili Terimler
Veritabanı indeksi, seçili sütunları ayrı veri yapısında tutarak sorguların tabloyu baştan sona taramasını azaltır.
Primary KeyPrimary key, bir veritabanı tablosundaki her kaydı tekil belirleyen, boş bırakılamayan ve tekrarlanamayan sütun ya da sütun grubudur.
Sorgu Optimizasyonu (Query Optimization)Sorgu optimizasyonu, SQL sorgularını daha az okuma, doğru indeks ve uygun yürütme planıyla hızlandırma sürecidir.
SQLSQL, ilişkisel veritabanlarında tabloları sorgulamak, değiştirmek ve raporlamak için kullanılan standart veri işleme dilidir.