💼 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