Latest web development tutorials

index SQLite

Index (Index) est une table de consultation spéciale, un moteur de recherche de base de données utilisée pour accélérer la récupération des données. Autrement dit, l'indice est un pointeur vers les données de la table. Un index d'un livre derrière l'indice de base de données est très similaire.

Par exemple, si vous voulez discuter d'un sujet particulier dans un livre toutes les pages référencées, vous devez d'abord pointer vers un index, une liste alphabétique de tous les sujets, puis pointez sur un ou plusieurs numéro de page.

Les index permettent requête rapide SELECT et la clause WHERE, mais il va ralentir l'entrée de données en utilisant UPDATE et INSERT déclarations quand. Index peut être créé ou supprimé, mais ne sera pas affecter les données.

Créer un index à l'aide de l'instruction CREATE INDEX, qui vous permet de nommer l'index, spécifiez la table à indexer et une ou plusieurs colonnes, et indique l'indice est croissant ou décroissant.

Indice peut être contrainte unique et similaire UNIQUE pour éviter les doublons dans la colonne ou la combinaison de colonnes.

Commande CREATE INDEX

CREATE INDEX La syntaxe de base est la suivante:

CREATE INDEX nom_index ON nom_table;

Un indice distinct

L'indice est basé sur un seul index sur une liste créée. La syntaxe de base est la suivante:

CREATE INDEX nom_index
ON nom_table (nom_colonne);

Index unique

À l'aide d'un index unique non seulement pour des performances, mais aussi l'intégrité des données. Index unique ne permet pas de valeurs en double dans la table. La syntaxe de base est la suivante:

CREATE UNIQUE INDEX index_name
on table_name (column_name);

indice composite

Indice de composition est basée sur deux ou plusieurs colonnes d'une table créée. La syntaxe de base est la suivante:

CREATE INDEX nom_index
sur table_name (column1, column2);

Voulez-vous créer un index séparé est un indice composite, compte tenu de la très fréquente en tant que vos conditions de filtrage des requêtes dans les colonnes de la clause WHERE.

Si la valeur de l'utilisation d'une colonne, choisir d'utiliser un index séparé. S'il y a un filtre dans la clause WHERE utilisent souvent deux ou plusieurs colonnes, puis choisissez d'utiliser une combinaison de l'indice.

indice implicite

indice implicite est que lorsque vous créez un objet, créé automatiquement par le serveur de base de données. Les index sont automatiquement créés en tant que principal principales contraintes et les contraintes uniques.

Exemples

Voici un exemple, nous allons créer un index sur la table salaire colonne COMPANY:

sqlite> CREATE INDEX salary_index ON COMPANY (salaire);

Maintenant, nous allons utiliser.indices commande répertorie tous les index disponibles sur la table de société comme suit:

sqlite> .indices COMPANY

Ceci produit les résultats suivants, quisqlite_autoindex_COMPANY_1indice implicite est créé lorsque vous créez une table.

salary_index
sqlite_autoindex_COMPANY_1

Vous pouvez lister toutes les gammes de base de données d'index, comme suit:

sqlite> SELECT * FROM sqlite_master WHERE type = 'index';

commande DROP INDEX

Un index peut utiliser la commandeDROP SQLite supprimer.Une attention particulière devrait être quand de supprimer l'index, parce que la performance peut diminuer ou augmenter.

La syntaxe de base est la suivante:

index_name DROP INDEX;

Vous pouvez utiliser l'instruction suivante pour supprimer un index créé plus tôt:

sqlite> DROP INDEX salary_index;

Dans quelles circonstances pour éviter l'utilisation de l'indice?

Bien que l'indice est d'améliorer la performance de base de données, mais voici quelques cas, la nécessité d'éviter l'utilisation de l'indice. Lorsque vous utilisez un index, les lignes directrices suivantes devraient être réexaminées:

  • Index ne doit pas être utilisé sur de petites tables.

  • Index ne doit pas être utilisé en grandes quantités, il y a des mises à jour fréquentes ou opération table d'insertion.

  • Index ne doit pas être utilisé dans la colonne contient un grand nombre de valeurs NULL.

  • Index ne doit pas être utilisé sur une opération fréquente de la colonne.