HSQLDB - Indici

UN database indexè una struttura dati che migliora la velocità delle operazioni in una tabella. Gli indici possono essere creati utilizzando una o più colonne, fornendo la base sia per rapide ricerche casuali che per un efficiente ordinamento dell'accesso ai record.

Durante la creazione di un indice, è necessario considerare quali sono le colonne che verranno utilizzate per eseguire query SQL e creare uno o più indici su tali colonne.

In pratica, gli indici sono anche tipi di tabelle, che mantengono la chiave primaria o il campo indice e un puntatore a ciascun record nella tabella effettiva.

Gli utenti non possono vedere gli indici. Sono utilizzati solo per velocizzare le query e verranno utilizzati dal Motore di ricerca database per individuare rapidamente i record.

Le istruzioni INSERT e UPDATE richiedono più tempo sulle tabelle con indici, mentre le istruzioni SELECT vengono eseguite più velocemente su quelle tabelle. Il motivo è che durante l'inserimento o l'aggiornamento, il database deve inserire o aggiornare anche i valori dell'indice.

Indice semplice e unico

Puoi creare un indice univoco su una tabella. UNunique indexsignifica che due righe non possono avere lo stesso valore di indice. La seguente è la sintassi per creare un indice su una tabella.

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

È possibile utilizzare una o più colonne per creare un indice. Ad esempio, crea un indice su tutorials_tbl usando tutorial_author.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

Puoi creare un semplice indice su una tabella. Basta omettere la parola chiave UNIQUE dalla query per creare un semplice indice. UNsimple index consente valori duplicati in una tabella.

Se vuoi indicizzare i valori in una colonna in ordine decrescente, puoi aggiungere la parola riservata DESC dopo il nome della colonna.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

Comando ALTER per aggiungere e rilasciare INDICE

Esistono quattro tipi di istruzioni per l'aggiunta di indici a una tabella:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - Questa istruzione aggiunge una PRIMARY KEY, il che significa che i valori indicizzati devono essere univoci e non possono essere NULL.

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - Questa istruzione crea un indice per il quale i valori devono essere univoci (ad eccezione dei valori NULL, che possono apparire più volte).

  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) - Questo aggiunge un indice ordinario in cui qualsiasi valore può apparire più di una volta.

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - Questo crea uno speciale indice FULLTEXT che viene utilizzato per scopi di ricerca di testo.

Di seguito è riportata la query per aggiungere l'indice in una tabella esistente.

ALTER TABLE testalter_tbl ADD INDEX (c);

È possibile eliminare qualsiasi INDICE utilizzando la clausola DROP insieme al comando ALTER. Di seguito è riportata la query per eliminare l'indice creato sopra.

ALTER TABLE testalter_tbl DROP INDEX (c);

Visualizzazione delle informazioni INDICE

È possibile utilizzare il comando SHOW INDEX per elencare tutti gli indici associati a una tabella. L'output in formato verticale (specificato da \ G) è spesso utile con questa istruzione, per evitare il wraparound di righe lunghe.

Di seguito è riportata la sintassi generica per visualizzare le informazioni di indice su una tabella.

SHOW INDEX FROM table_name\G