HSQLDB - Index

UNE database indexest une structure de données qui améliore la vitesse des opérations dans une table. Les index peuvent être créés en utilisant une ou plusieurs colonnes, fournissant la base à la fois à des recherches aléatoires rapides et à un ordre efficace d'accès aux enregistrements.

Lors de la création d'un index, il convient de prendre en compte les colonnes qui seront utilisées pour effectuer des requêtes SQL et de créer un ou plusieurs index sur ces colonnes.

En pratique, les index sont également des types de tables, qui conservent la clé primaire ou le champ d'index et un pointeur vers chaque enregistrement dans la table réelle.

Les utilisateurs ne peuvent pas voir les index. Ils sont simplement utilisés pour accélérer les requêtes et seront utilisés par le moteur de recherche de base de données pour localiser rapidement les enregistrements.

Les instructions INSERT et UPDATE prennent plus de temps sur les tables ayant des index, tandis que les instructions SELECT s'exécutent plus rapidement sur ces tables. La raison étant lors de l'insertion ou de la mise à jour, la base de données doit également insérer ou mettre à jour les valeurs d'index.

Index simple et unique

Vous pouvez créer un index unique sur une table. UNEunique indexsignifie que deux lignes ne peuvent pas avoir la même valeur d'index. Voici la syntaxe pour créer un index sur une table.

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

Vous pouvez utiliser une ou plusieurs colonnes pour créer un index. Par exemple, créez un index sur tutorials_tbl à l'aide de tutorial_author.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

Vous pouvez créer un index simple sur une table. Omettez simplement le mot clé UNIQUE de la requête pour créer un index simple. UNEsimple index autorise les valeurs en double dans une table.

Si vous souhaitez indexer les valeurs d'une colonne dans un ordre décroissant, vous pouvez ajouter le mot réservé DESC après le nom de la colonne.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

Commande ALTER pour ajouter et supprimer INDEX

Il existe quatre types d'instructions pour ajouter des index à une table -

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - Cette instruction ajoute une PRIMARY KEY, ce qui signifie que les valeurs indexées doivent être uniques et ne peuvent pas être NULL.

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - Cette instruction crée un index pour lequel les valeurs doivent être uniques (à l'exception des valeurs NULL, qui peuvent apparaître plusieurs fois).

  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) - Cela ajoute un index ordinaire dans lequel toute valeur peut apparaître plusieurs fois.

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - Cela crée un index FULLTEXT spécial qui est utilisé à des fins de recherche de texte.

Voici la requête pour ajouter un index dans une table existante.

ALTER TABLE testalter_tbl ADD INDEX (c);

Vous pouvez supprimer n'importe quel INDEX en utilisant la clause DROP avec la commande ALTER. Voici la requête pour supprimer l'index créé ci-dessus.

ALTER TABLE testalter_tbl DROP INDEX (c);

Affichage des informations INDEX

Vous pouvez utiliser la commande SHOW INDEX pour lister tous les index associés à une table. La sortie au format vertical (spécifiée par \ G) est souvent utile avec cette instruction, pour éviter le bouclage de longues lignes.

Voici la syntaxe générique pour afficher les informations d'index sur une table.

SHOW INDEX FROM table_name\G