Junior
Veritabanında nasıl indeks oluşturulur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir dizin oluşturma, belirli bir veritabanı yönetim sistemine (DBMS) bağlıdır.
Genel SQL sözdizimi şu şekildedir:
CREATE INDEX index_adi
ON tablo_adi (sütun1, sütun2, ...);
CREATE INDEX: Dizin oluşturmak için anahtar kelimeler.index_adi: Dizin için verdiğiniz isim. Tablo içinde benzersiz olmalıdır.tablo_adi: Dizin oluşturduğunuz tablonun adı.sütun1, sütun2, ...: Dizin içine alınan sütunların listesi. Sütunların sırası, bileşik dizinler için önemlidir.
Popüler DBMS örnekleri:
| DBMS | Örnek |
|---|---|
| PostgreSQL | CREATE INDEX users_email_idx ON users (email); |
| MySQL | CREATE INDEX products_price_category_idx ON products (price, category_id); |
| SQLite | CREATE INDEX orders_date_idx ON orders (order_date); |
| SQL Server | CREATE INDEX payments_user_idx ON payments (user_id); |
Farklı dizin türleri oluşturulabilir, örneğin:
- Küme dizinleri: Satırların fiziksel sırasını belirler (genellikle tablo başına bir tane).
- Küme olmayan dizinler: Satırların referanslarını tutan ayrı veri yapısı.
- Benzersiz dizinler: Dizine alınan sütunlardaki değerlerin benzersizliğini sağlar.
Benzersiz dizin örneği:
CREATE UNIQUE INDEX users_username_unique_idx
ON users (username);
Birden çok sütuna sahip bileşik dizinler:
CREATE INDEX orders_user_product_idx
ON orders (user_id, product_id);
Dizin oluştururken, WHERE koşullarında en sık kullanılan sütunlar, JOIN işlemleri ve ORDER BY ifadeleri göz önünde bulundurulmalıdır. Çok sayıda dizin oluşturmak veya uygun olmayan sütunlara dizin eklemek, ekleme, güncelleme ve silme işlemlerinin performansını olumsuz etkileyebilir.