HSQLDB - Dizinler

Bir database indexbir tablodaki işlemlerin hızını artıran bir veri yapısıdır. Dizinler, hem hızlı rastgele aramalar hem de kayıtlara erişimin verimli bir şekilde sıralanması için temel oluşturan bir veya daha fazla sütun kullanılarak oluşturulabilir.

İndeks oluştururken SQL sorguları yapmak için kullanılacak kolonların ne olduğu ve bu kolonlar üzerinde bir veya daha fazla indeks oluşturulması dikkate alınmalıdır.

Pratik olarak, dizinler aynı zamanda birincil anahtarı veya dizin alanını ve gerçek tabloya her kayıt için bir işaretçiyi tutan tablo türleridir.

Kullanıcılar indeksleri göremez. Sadece sorguları hızlandırmak için kullanılırlar ve Veritabanı Arama Motoru tarafından kayıtları hızlı bir şekilde bulmak için kullanılırlar.

INSERT ve UPDATE deyimleri, dizin içeren tablolarda daha fazla zaman alırken, SELECT deyimleri bu tablolarda daha hızlı çalışır. Bunun nedeni, ekleme veya güncelleme sırasında, veritabanının dizin değerlerini de eklemesi veya güncellemesi gerekmesidir.

Basit ve Benzersiz Dizin

Bir tablo üzerinde benzersiz bir dizin oluşturabilirsiniz. Birunique indexiki satırın aynı indeks değerine sahip olamayacağı anlamına gelir. Aşağıda bir tabloda bir Dizin oluşturmak için sözdizimi verilmiştir.

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...);

Bir dizin oluşturmak için bir veya daha fazla sütun kullanabilirsiniz. Örneğin, tutorial_author kullanarak tutorials_tbl üzerinde bir dizin oluşturun.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

Bir tablo üzerinde basit bir dizin oluşturabilirsiniz. Basit bir dizin oluşturmak için sorgudan UNIQUE anahtar sözcüğünü çıkarmanız yeterlidir. Birsimple index bir tabloda yinelenen değerlere izin verir.

Bir sütundaki değerleri azalan sırada dizine eklemek istiyorsanız, sütun adından sonra ayrılmış DESC sözcüğünü ekleyebilirsiniz.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

INDEX Eklemek ve Bırakmak için ALTER Komutu

Bir tabloya dizin eklemek için dört tür ifade vardır -

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - Bu ifade, bir PRIMARY KEY ekler, bu, indekslenen değerlerin benzersiz olması gerektiği ve NULL olamayacağı anlamına gelir.

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - Bu ifade, değerlerin benzersiz olması gereken bir dizin oluşturur (birden çok kez görünebilen NULL değerler hariç).

  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) - Bu, herhangi bir değerin birden fazla görünebileceği sıradan bir indeks ekler.

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - Bu, metin arama amacıyla kullanılan özel bir FULLTEXT dizini oluşturur.

Mevcut bir tabloya dizin ekleme sorgusu aşağıdadır.

ALTER TABLE testalter_tbl ADD INDEX (c);

ALTER komutuyla birlikte DROP yan tümcesini kullanarak herhangi bir INDEX'i bırakabilirsiniz. Yukarıda oluşturulan dizini bırakma sorgusu aşağıdadır.

ALTER TABLE testalter_tbl DROP INDEX (c);

INDEX Bilgilerinin Görüntülenmesi

Bir tabloyla ilişkili tüm dizinleri listelemek için SHOW INDEX komutunu kullanabilirsiniz. Dikey biçimli çıktı (\ G ile belirtilir), uzun satır kaydırmayı önlemek için genellikle bu deyimle kullanışlıdır.

Aşağıda, bir tablo hakkındaki indeks bilgilerini görüntülemek için genel sözdizimi verilmiştir.

SHOW INDEX FROM table_name\G