FirebirdSQL logo

Un index est un objet de base de données utilisé pour récupérer plus rapidement les données d’une table ou pour accélérer le tri dans une requête.De plus, les index sont utilisés pour fournir des restrictions d’intégrité — PRIMARY KEY, FOREIGN KEY, UNIQUE.

Cette section décrit comment créer des index, les mettre à l’état actif/inactif, supprimer des index et collecter des statistiques (recalcul de la sélectivité) pour les index.

CREATE INDEX

Objectif

Pour créer un index pour une table.

Disponible en

DSQL, ESQL.

CREATE [UNIQUE] [ASC[ENDING] | DESC[ENDING]]
INDEX indexname ON tablename
{(<column_list>) | COMPUTED [BY] (<value_expression>)}
[WHERE <search_condition>]

<column_list> ::= col [, col ...]
Table 1. Paramètres de la commande CREATE INDEX.
Paramètre Description

indexname

Nom de l’index.Peut contenir jusqu’à 63 caractères.

tablename

Le nom de la table pour laquelle l’index est construit.

col

Colonne de la table.Les champs BLOB, ARRAY et calculés ne peuvent pas être utilisés comme colonnes.

value_expression

Une expression contenant les colonnes du tableau. Les valeurs de cette expression seront les clés de l’index.

search_condition

Une condition de recherche contenant les colonnes de la table. Utilisée pour définir un sous-ensemble d’enregistrements de la table à indexer.

L’instruction CREATE INDEX crée un index pour la table, qui peut être utilisé pour accélérer la recherche, le tri et/ou le regroupement.L’index peut également être utilisé lors de la définition de contraintes telles que les contraintes de clé primaire, de clé étrangère ou d’unicité.Un index peut être construit sur des colonnes de tout type autre que BLOB et les tableaux.Le nom de l’index doit être unique parmi tous les noms d’index.

Note
Indices dans les clés

L’ajout d’une contrainte de clé primaire, d’une contrainte de clé étrangère ou d’une contrainte d’unicité créera implicitement un index du même nom.Par exemple, l’instruction suivante créera implicitement un index PK_COUNTRY.

ALTER TABLE COUNTRY
ADD CONSTRAINT PK_COUNTRY PRIMARY KEY (ID);