SQL - Dizinler
Dizinler special lookup tablesveritabanı arama motorunun veri alımını hızlandırmak için kullanabileceği. Basitçe ifade etmek gerekirse, indeks, tablodaki verilere bir göstericidir. Veritabanındaki bir dizin, bir kitabın arkasındaki dizine çok benzer.
Örneğin, bir kitabın belirli bir konuyu ele alan tüm sayfalarına başvurmak istiyorsanız, önce tüm konuları alfabetik olarak listeleyen ve ardından bir veya daha fazla belirli sayfa numarasına atıfta bulunulan dizine başvurursunuz.
Bir dizin hızlanmaya yardımcı olur SELECT sorgular ve WHERE tümceler, ancak veri girişini yavaşlatır, UPDATE ve INSERTifadeler. Veriler üzerinde hiçbir etkisi olmadan dizinler oluşturulabilir veya çıkarılabilir.
Bir dizin oluşturmak şunları içerir: CREATE INDEX dizini adlandırmanıza, tabloyu ve hangi sütun veya sütunların dizine ekleneceğini belirtmenize ve dizinin artan veya azalan sırada olup olmadığını belirtmenize olanak tanıyan deyim.
Dizinler de benzersiz olabilir, örneğin UNIQUE kısıtlama, indeksin bir indeksin bulunduğu sütunda veya sütun kombinasyonunda yinelenen girişleri engellemesidir.
CREATE INDEX Komutu
A'nın temel sözdizimi CREATE INDEX Şöyleki.
CREATE INDEX index_name ON table_name;
Tek Sütunlu Dizinler
Yalnızca bir tablo sütununa dayalı olarak tek sütunlu bir dizin oluşturulur. Temel sözdizimi aşağıdaki gibidir.
CREATE INDEX index_name
ON table_name (column_name);
Benzersiz Dizinler
Benzersiz dizinler yalnızca performans için değil, aynı zamanda veri bütünlüğü için de kullanılır. Benzersiz bir dizin, tabloya yinelenen değerlerin eklenmesine izin vermez. Temel sözdizimi aşağıdaki gibidir.
CREATE UNIQUE INDEX index_name
on table_name (column_name);
Bileşik Dizinler
Bileşik dizin, bir tablonun iki veya daha fazla sütunundaki bir dizindir. Temel sözdizimi aşağıdaki gibidir.
CREATE INDEX index_name
on table_name (column1, column2);
İster tek sütunlu bir dizin ister bir bileşik dizin oluşturun, bir sorgunun WHERE yan tümcesinde filtre koşulları olarak çok sık kullanabileceğiniz sütunları dikkate alın.
Yalnızca bir sütun kullanılması durumunda, tek sütunlu bir dizin seçim olmalıdır. WHERE yan tümcesinde filtre olarak sıklıkla kullanılan iki veya daha fazla sütun olması durumunda, bileşik dizin en iyi seçim olacaktır.
Örtük Dizinler
Örtük dizinler, bir nesne oluşturulduğunda veritabanı sunucusu tarafından otomatik olarak oluşturulan dizinlerdir. Dizinler, birincil anahtar kısıtlamaları ve benzersiz kısıtlamalar için otomatik olarak oluşturulur.
DROP INDEX Komutu
SQL kullanılarak bir dizin bırakılabilir DROPkomut. Bir dizini düşürürken dikkatli olunmalıdır çünkü performans yavaşlayabilir veya gelişebilir.
Temel sözdizimi aşağıdaki gibidir -
DROP INDEX index_name;
Dizinlerle ilgili bazı gerçek örnekleri görmek için INDEX Kısıtlama bölümünü kontrol edebilirsiniz .
İndekslerden ne zaman kaçınılmalıdır?
Dizinler bir veritabanının performansını artırmayı amaçlasa da, kaçınılması gereken zamanlar vardır.
Aşağıdaki yönergeler, bir dizinin kullanımının ne zaman yeniden değerlendirilmesi gerektiğini belirtir.
Küçük tablolarda indeksler kullanılmamalıdır.
Sık, büyük toplu güncellemeleri veya ekleme işlemleri olan tablolar.
Yüksek sayıda NULL değer içeren sütunlarda dizinler kullanılmamalıdır.
Sıklıkla işlenen sütunlar dizine eklenmemelidir.