💼 Mülakat
Mülakat: SQL mülakatını, ehliyet sınavının direksiyon kısmı gibi düşün. Teorik sınavda 'kırmızı ışık ne demektir?' diye sorulur; direksiyonda ise seni yağmurlu bir günde dar bir
SQL mülakatını, ehliyet sınavının direksiyon kısmı gibi düşün. Teorik sınavda 'kırmızı ışık ne demektir?' diye sorulur; direksiyonda ise seni yağmurlu bir günde dar bir sokağa sokup park ettirirler. İkincisini ezberle geçemezsin, çünkü sorulan şey bilgi değil, bilgiyi baskı altında kullanabilme becerisidir. Peki tanımları bilmek neden yetmiyor — 'INNER JOIN ile LEFT JOIN farkını' doğru anlatan biri bu işi yapamaz mı? Mülakatı yapan kişinin gerçekte öğrenmeye çalıştığı şu: sen bir sorunla karşılaştığında nereden başlıyorsun? 'LEFT JOIN sol tabloyu korur' cümlesini herkes ezberleyebilir; ama 'raporda 12 testçi görünmesi gerekirken 9 görünüyor' dendiğinde ilk refleksi JOIN tipini sorgulamak olan kişi azdır. Bu yüzden sorular giderek senaryolaşır: 'gece koşumunda 400 test FAIL oldu, veritabanına bakarak nereden başlarsın?' Java mülakatlarındaki dengi tanıdıktır: `HashMap` nasıl çalışır sorusundan çok, 'bu koda `ConcurrentModificationException` neden düşüyor' sorusu ayırt edicidir. Her iki dilde de ayırt edici olan tanım değil, hata karşısındaki düşünce sırasıdır. Bu bölümdeki sorular bu yüzden senaryo tabanlıdır ve cevaplarında düşünce zincirini görürsün: hangi sorguyu neden yazdın, dönen sonucu nasıl yorumladın, bir sonraki adımda neyi elediniz. Kendi cevabını yazmadan çözümü açma — mülakattaki gerçek fark, cevabı bilmekle cevabı üretebilmek arasındadır.
Model cevabı görmek için her soruya tıklayın. Kod örnekleri içerir.
🎬 Mülakatta EXPLAIN Planını Okumak
Soru: "Bu Sorgu Neden Yavaş?"
type: ALL (Full Scan)
CREATE INDEX Önerisi
Mülakatta klasik senaryo sorusu: "Bu sorgu production'da çok yavaş çalışıyor, ne yaparsın?" Zayıf cevap sadece "index eklerim" der — GÜÇLÜ cevap önce KANIT ister.
Güçlü cevabın ilk katmanı: "Önce `EXPLAIN` ile sorgu planını incelerim" — tahmin etmek yerine motorun NE YAPTIĞINI gözlemlemek.
Çıktı `type: ALL` gösteriyor — bu, motorun HER satırı taradığı anlamına gelir (Full Table Scan). Aday burada durup "işte kanıt bu" diyebilmelidir, sadece "yavaş" demek yetmez.
2. katman — çözüm + gerekçe: "WHERE'de kullanılan `status` sütununa index eklerim, çünkü `EXPLAIN` böylece `type: ref`'e döner ve motor artık HER satırı değil, sadece ilgili satırları okur."
Final — formül: KANIT topla (EXPLAIN) → sorunu ADLANDIR (Full Scan) → çözüm + GEREKÇE ver (neden index type: ref'e çevirir). Komut adı ezberleyen değil, NEDENİ açıklayan aday kazanır.
Adım Adım: Bir SQL Senaryo Sorusuna Cevap Kurma
Hangi sorgu, hangi tablo boyutu, ne zamandan beri yavas? Once soru sormak derinligi gosterir.
Kanıt komutunu söyle