yoklateknik mülakat

Veritabanı Indexing Mülakat Soruları

75 doğrulanmış Veritabanı Indexing mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

IndexingZorluk 1
Depolama seviyesinde bir veritabanı index'i nedir?
  • aTüm tablonun, ayrı bir disk biriminde tutulan sıkıştırılmış, salt-okunur bir kopyasıdır
  • bEn son çalıştırılan sorguların sonucunu tutan bir bellek-içi (in-memory) cache'tir
  • cKolon değerlerini, onları içeren satırlara eşleyen ayrı ve sıralı bir yapıdır
  • dTablonun kendi fiziksel yerleşimini periyodik olarak yeniden düzenleyen bir arka plan işidir
Açıklama:Index, anahtar değerleri sıralı tutan ve her birini o değeri içeren satır(lar)a işaret eden yardımcı bir veri yapısıdır (genelde B-tree); böylece motor tüm tabloyu okumadan eşleşmeleri bulur. Tablonun tam kopyası (a) değildir; sorgu sonucu cache'i (b) ise farklı bir mekanizmadır.
IndexingZorluk 1
products.sku kolonunda index yok. Motor WHERE sku = 'X-100' sorgusunu nasıl karşılar?
  • aFull (sequential) scan yapar; her satırı okuyup koşulu test eder
  • bKolonda index oluşturulana kadar sorguyu çalıştırmayı reddeder
  • cYalnızca eşleşen ilk satırı okuyup hemen durur, tablonun geri kalanını yok sayar
  • dsku üzerinde otomatik geçici bir index kurup onu kalıcı olarak yeniden kullanır
Açıklama:Kullanılabilir bir index olmadığında motorun kısayolu yoktur; tabloyu satır satır tarar (sequential/full table scan) ve eşleşenleri tutar. Sessizce kalıcı bir index oluşturmaz (d); ayrıca başka satırlar da eşleşebileceği için ilk eşleşmede duramaz (c).
IndexingZorluk 1
Genelde hangi kolonlar index için en iyi adaylardır?
  • aSorgularda neredeyse hiç kullanılmayan ama tesadüfen az yer kaplayan kolonlar
  • bYalnızca detay ekranlarında gösterilen büyük metin veya binary blob kolonları
  • cNeredeyse her yazmada güncellenen ama neredeyse hiç okunmayan kolonlar
  • dWHERE filtreleri, JOIN koşulları veya ORDER BY'da sık kullanılan kolonlar
Açıklama:Index, motorun bir kolona göre tekrar tekrar arama/eşleştirme/sıralama yaptığı yerlerde — yani WHERE, JOIN ve ORDER BY'da — işe yarar. Nadiren sorgulanan kolonu index'lemek (a) yer ve yazma zamanı israf eder; sürekli güncellenip nadiren okunan kolonu index'lemek (c) az okuma faydasına karşılık bakım maliyeti ekler.
IndexingZorluk 1
id üzerinde PRIMARY KEY tanımlıyorsun. Veritabanı bunu desteklemek için ne oluşturur?
  • aFazladan bir şey yok; primary key her insert'te tablo tam taranarak zorlanır
  • bAnahtar kolonunda otomatik kullanılan, hem zorlayan hem arama yapan bir unique index
  • cKolonu dahili bir sistem katalog tablosuna işaret eden bir foreign key
  • dHer insert'ten önce çalışıp tekrar eden id değerlerini kontrol eden bir trigger
Açıklama:Primary key tanımlamak arkada otomatik bir unique index oluşturur; motor bunu hem uniqueness'ı zorlamak hem de id ile satırı hızlı bulmak için kullanır. Her insert'te tabloyu yeniden taramaz (a) — index zaten bunu önler — ve görünür bir trigger (d) devreye girmez.
IndexingZorluk 1
Tek bir B-tree index hem age = 30 hem age BETWEEN 20 AND 40 sorgusuna nasıl hizmet edebilir?
  • aAnahtarları sıralı tuttuğu için; hem eşitlik hem aralık üzerinde seek yapılabilir
  • bKolondaki her farklı değer için ayrı bir hash bucket tuttuğu için
  • cPredicate'i değerlendirmeden önce index'li kolonun tamamını belleğe yüklediği için
  • dAralık sorguları içeride bir eşitlik kontrolleri listesine yeniden yazıldığı için
Açıklama:B-tree anahtarları sıralı tutar; motor bir başlangıç noktasına inip yaprakları sırayla gezebilir — bu hem tam eşleşmeyi hem de bitişik aralıkları kapsar. Hash yapısı (b) eşitliği destekler ama aralığı desteklemez; bu yüzden aralık predicate'leri hash index kullanamaz.
IndexingZorluk 1
Optimizer'ın kullanmaya karar verdiği bir index ekliyorsun. Sorguda ne değişebilir?
  • aDönen satır kümesi kayabilir, çünkü index bazı eşleşmeleri eleyip çıkarır
  • bSUM ve COUNT gibi aggregate sonuçları biraz farklı çıkabilir
  • cORDER BY olmadan bile satırlar garanti olarak index'in sırasında döner
  • dSadece performans değişir; sonuç kümesi birebir aynı kalır
Açıklama:Index bir arama yardımcısıdır, sorgunun mantığının parçası değil; bu yüzden yalnızca cevabın ne kadar hızlı üretileceğini etkiler, hangi satır/değerlerin döndüğünü değil (a ve b). Açık ORDER BY olmadan sıralama asla garanti değildir (c), index tesadüfen sıralı döndürse bile.

2475 soruluk Veritabanı bankasında kendini sına.

Mülakata başla