Tutoriel classi...SE CONNECTER
Tutoriel classique SQLite
auteur:php.cn  temps de mise à jour:2022-04-13 17:05:02

Index SQLite


Index est une table de recherche spéciale utilisée par les moteurs de recherche de bases de données pour accélérer la récupération des données. En termes simples, un index est un pointeur vers les données du tableau. Un index dans une base de données est très similaire à un index derrière un livre.

Par exemple, si vous souhaitez citer toutes les pages d'un livre qui traite d'un certain sujet, vous devez d'abord pointer vers l'index, qui répertorie tous les sujets par ordre alphabétique, puis pointer vers un ou plusieurs sujets spécifiques. numéros de pages.

Un index permet d'accélérer les requêtes SELECT et les clauses WHERE, mais il ralentit la saisie des données lors de l'utilisation des instructions UPDATE et INSERT. Les index peuvent être créés ou supprimés sans affecter les données.

Créez un index à l'aide de l'instruction CREATE INDEX, qui permet de nommer l'index, de spécifier la table et la ou les colonnes à indexer, et d'indiquer si l'index est par ordre croissant ou décroissant.

Les indices peuvent également être uniques, similaires aux contraintes UNIQUE, empêchant les entrées en double sur une colonne ou une combinaison de colonnes.

Commande CREATE INDEX

La syntaxe de base de CREATE INDEX est la suivante :

CREATE INDEX index_name ON table_name;

Index à colonne unique

Un index à colonne unique est un index créé sur la base d'une seule colonne de la table. La syntaxe de base est la suivante :

CREATE INDEX index_name
ON table_name (column_name);

Unique Index

L'utilisation d'un index unique est non seulement pour les performances, mais aussi pour l'intégrité des données. Un index unique ne permet pas d'insérer des valeurs en double dans le tableau. La syntaxe de base est la suivante :

CREATE UNIQUE INDEX index_name
on table_name (column_name);

Index combiné

L'index combiné est basé sur une table Un index créé sur deux colonnes ou plus. La syntaxe de base est la suivante :

CREATE INDEX index_name
on table_name (column1, column2);

Que vous souhaitiez créer un index à une seule colonne ou un index combiné, vous devez considérer les colonnes qui sont utilisées très fréquemment dans la clause WHERE comme filtres de requête.

Si la valeur utilise une colonne, choisissez d'utiliser un index à une seule colonne. Choisissez d'utiliser un index composite si deux colonnes ou plus sont fréquemment utilisées dans la clause WHERE comme filtre.

Index implicite

L'index implicite est un index créé automatiquement par le serveur de base de données lors de la création d'un objet. Les index sont automatiquement créés avec des contraintes de clé primaire et des contraintes uniques.

Exemple

Ce qui suit est un exemple où nous allons créer un index sur la colonne salaire de la table COMPANY :

sqlite> salaire) ;

Maintenant, utilisons la commande .indices pour lister tous les index disponibles sur la table COMPANY comme suit :

sqlite> .indices SOCIÉTÉ

Cela produira le résultat suivant, où sqlite_autoindex_COMPANY_1 est l'index implicite créé lors de la création de la table.

salary_index
sqlite_autoindex_COMPANY_1

Vous pouvez lister tous les index au niveau de la base de données comme ceci :

sqlite> type = 'index';

Commande DROP INDEX

Un index peut être supprimé à l'aide de la commande DROP de SQLite. Des précautions particulières doivent être prises lors de la suppression d'index, car les performances peuvent se dégrader ou s'améliorer.

La syntaxe de base est la suivante :

DROP INDEX index_name;

Vous pouvez utiliser l'instruction suivante pour supprimer un index précédemment créé :

sqlite> DROP INDEX salaire_index;

Dans quelles circonstances devriez-vous éviter d'utiliser des index ?

Bien que le but des index soit d'améliorer les performances de la base de données, il existe plusieurs situations dans lesquelles vous devez éviter d'utiliser des index. Lors de l'utilisation d'index, les directives suivantes doivent être reconsidérées :

  • Les index ne doivent pas être utilisés sur des tables plus petites.

  • Les indices ne doivent pas être utilisés sur des tables avec des opérations fréquentes de mise à jour ou d'insertion par lots importants.

  • Les indices ne doivent pas être utilisés sur des colonnes contenant un grand nombre de valeurs NULL.

  • Les indices ne doivent pas être utilisés sur des colonnes fréquemment utilisées.

Site Web PHP chinois