Plan okuma
- SQL kursu
- Uzman
- Ders 20/45
- 5 dk
EXPLAIN ile yavaş planı incele
Plan okuma
İkinci adımda EXPLAIN ile sorgu planını okuyacaksın. Plan, indeks kullanıp kullanmadığını veya tam tablo taraması yaptığını gösterir.
EXPLAIN SELECT * FROM orders
WHERE customer_id = 5;Bu sorgu plan Seq Scan veya Index Scan gösterir.
orders kaynağından tüm sütunlar seçilir. WHERE customer_id = 5 koşulunu sağlamayan satırlar elenir.
Plan okuma — ayrıntı
Plan çıktısında Seq Scan görüyorsan indeks yok demektir. Index Scan görüyorsan indeks kullanılıyor. Maliyet değerleri planın ucuzluğunu gösterir.
Uygulama Plan okuma
Önceki orders tablosu üzerinde EXPLAIN SELECT * FROM orders WHERE customer_id = 5 çalıştır.
Başlangıç kodu
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
customer_id INT,
amount NUMERIC,
created_at TIMESTAMP
);
-- plan oku
EXPLAINÖrnek çözüm
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
customer_id INT,
amount NUMERIC,
created_at TIMESTAMP
);
-- plan oku
EXPLAIN SELECT * FROM orders WHERE customer_id = 5;Beklenen çıktı
Seq Scan on orders
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Plan komutu
____ SELECT * FROM orders WHERE customer_id = 5;
EXPLAIN SELECT * FROM orders WHERE customer_id = 5;
Açıklama: EXPLAIN doğru cevap.
2 Seq Scan neyi gösterir?
- İndeks taraması
- Tam tablo taraması Doğru cevap
- Hash join
- Merge join
Açıklama: Seq Scan tam tablo taraması gösterir.
3 Plan okuma: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
EXPLAIN |
plan |
Seq Scan |
tam tarama |
Index Scan |
indeks |
cost |
maliyet |