CodeBlanks Logo Icon CodeBlanks

Join stratejileri

Hash, merge ve nested loop join'i öğrenirsin.

Join stratejileri

İyileştirici üç temel join stratejisi kullanır: nested loop (küçük tablolar), hash join (büyük eşitlik join), merge join (sıralı veri).

-- Nested Loop: küçük + küçük
-- Hash Join: büyük = büyük
-- Merge Join: sıralı + sıralı

Bu sorgu üç join stratejisi vardır.

Join stratejileri — ayrıntı

Hash join, bir tabloyu bellekte hash tablosuna kurar ve diğerini tarar. Yeterli RAM yoksa disk taşar ve yavaşlar. Merge join ise iki tablo da sıralıysa hızlıdır.

Uygulama Join stratejileri

orders ve customers tablolarını customer_id üzerinden JOIN ile birleştir; EXPLAIN ile planı gör.

Başlangıç kodu

query.sql
-- join planı
EXPLAIN SELECT * FROM orders o

Örnek çözüm

query.sql
EXPLAIN SELECT * FROM orders o JOIN customers c ON o.customer_id = c.id;

Beklenen çıktı

Hash Join on orders x customers

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Büyük eşitlik join'de hangi strateji?

  • Nested loop
  • Hash join Doğru cevap
  • Seq scan
  • Index scan

Açıklama: Büyük eşitlik join'de hash join kullanılır.

2 Küçük tablolar için join

Soru
____ Join
Cevap
Nested Loop Join

Açıklama: Nested Loop doğru cevap.

3 Join stratejileri: kavramları eşleştir

Kavram Anlamı
nested loop iç içe
hash join hash
merge join birleşim
small küçük

Uzman bölümündeki tüm dersler