CREATE INDEX, UNIQUE INDEX, Composite Index
Index Oluşturma
-- Tekli index
CREATE INDEX idx_city ON customers(city);
CREATE INDEX idx_order_date ON orders(order_date);
CREATE INDEX idx_category ON products(category_id);
-- UNIQUE index (benzersizlik + performans)
CREATE UNIQUE INDEX idx_email ON customers(email);
-- Composite (birleşik) index
CREATE INDEX idx_status_date ON orders(status, order_date);
CREATE INDEX idx_cat_price ON products(category_id, price);
-- ALTER TABLE ile
ALTER TABLE products ADD INDEX idx_name (product_name);
ALTER TABLE customers ADD UNIQUE INDEX idx_phone (phone);Composite Index — Sütun Sırası Önemli!
Composite index soldan sağa çalışır (leftmost prefix rule):
CREATE INDEX idx_abc ON table(a, b, c);
-- ✅ Index kullanılır:
WHERE a = 1 -- Sadece a
WHERE a = 1 AND b = 2 -- a + b
WHERE a = 1 AND b = 2 AND c = 3 -- a + b + c (tam kullanım)
WHERE a = 1 AND c = 3 -- Sadece a kısmı kullanılır
-- ❌ Index KULLANILMAZ:
WHERE b = 2 -- a olmadan b kullanılamaz
WHERE c = 3 -- a olmadan c kullanılamaz
WHERE b = 2 AND c = 3 -- a olmadan başlanamaz💡 İpucu: Composite index sırasını belirlerken: 1) Eşitlik koşulları (=) önce, 2) Aralık koşulları (>, <) sonra. Sık kullanılan WHERE koşullarını analiz et.
Index Silme
DROP INDEX idx_city ON customers;
ALTER TABLE customers DROP INDEX idx_phone;Index Türleri Özet
| Tür | Syntax | Kullanım |
|---|---|---|
| Normal | CREATE INDEX | WHERE, JOIN koşullarında |
| UNIQUE | CREATE UNIQUE INDEX | Benzersizlik + performans |
| Composite | CREATE INDEX idx ON t(a, b) | Çoklu sütun filtreleme |
| Prefix | CREATE INDEX idx ON t(name(10)) | Uzun string'lerin ilk N karakteri |
| Fulltext | CREATE FULLTEXT INDEX | Metin arama (B12'de) |
Ne Zaman Index Oluşturmalı?
WHERE'de sık kullanılan sütunlar
JOIN koşulundaki FK sütunları
ORDER BY sütunları
GROUP BY sütunları
UNIQUE olması gereken sütunlar
Ne Zaman Oluşturmamalı?
Çok az satırlı tablolarda (index overhead > fayda)
Çok sık yazılan, nadiren okunan tablolarda
Düşük kardinalite (cinsiyet gibi sadece M/F — index işe yaramaz)
Özet
CREATE INDEXsorgu performansını artırırComposite index soldan sağa prefix kuralına uyar
Eşitlik sütunları önce, aralık sütunları sonra
UNIQUE index hem benzersizlik hem performans sağlar
Fazla index yazma performansını düşürür — dengeli ol
AI Asistan
Sorularını yanıtlamaya hazır