CodeBlanks Logo Icon CodeBlanks

İndeks ekleme

Covering index ile sorguyu hızlandır

İndeks ekleme

Üçüncü adımda customer_id sorgusunu hızlandırmak için covering indeks ekleyeceksin. INCLUDE (amount) ile index-only scan sağlanır.

CREATE INDEX idx_orders_customer
ON orders (customer_id)
INCLUDE (amount);

Bu sorgu covering index index-only scan sağlar.

idx_orders_customer indeksi oluşturulur.

İndeks ekleme — ayrıntı

İndeks eklendikten sonra EXPLAIN çıktısı Seq Scan'den Index Scan'a döner. Maliyet düşer, okuma hızlanır. Sorgu artık tabloya dokunmadan indeksten okunur.

Uygulama İndeks ekleme

Önceki çözüme CREATE INDEX idx_orders_customer ON orders (customer_id) INCLUDE (amount) ekle.

Başlangıç kodu

query.sql
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;
-- indeks ekle
CREATE

Örnek çözüm

query.sql
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;
-- indeks ekle
CREATE INDEX idx_orders_customer ON orders (customer_id) INCLUDE (amount);

Beklenen çıktı

CREATE INDEX

Soru ve cevaplar

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

1 Covering index neyi sağlar?

  • Seq scan
  • Full scan
  • Index-only scan Doğru cevap
  • Cross join

Açıklama: Covering index index-only scan sağlar.

2 INCLUDE yan tümcesi

Soru
CREATE INDEX idx_orders_customer ON orders (customer_id) ____ (amount)
Cevap
CREATE INDEX idx_orders_customer ON orders (customer_id) INCLUDE (amount)

Açıklama: INCLUDE doğru cevap.

3 İndeks ekleme: kavramları eşleştir

Kavram Anlamı
covering kapsayan
INCLUDE ekle
index-only indeks tek
cost maliyet

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