66 votes

Comment indexer une colonne de base de données

J'espère que je peux obtenir des réponses pour chaque serveur de base de données.

Pour un aperçu du fonctionnement de l'indexation, consultez: http://stackoverflow.com/questions/1108/how-does-database-indexing-work

70voto

John Downey Points 6729

Ce qui suit est standard SQL92 donc devrait être supporté par la majorité des RDMBS qui utilisent SQL:

  CREATE INDEX [index name] ON [table name] ( [column name] ) 

7voto

Eric Z Beard Points 18473

SQL Server 2005 vous donne la possibilité de spécifier un index de couverture. Il s'agit d'un index qui inclut des données provenant d'autres colonnes au niveau feuille. Vous n'avez donc pas besoin de revenir à la table pour obtenir les colonnes qui ne sont pas incluses dans les clés d'index.

créer un index non clusterisé mon idx sur ma table (mon col1 asc, mon col2 asc) include (mon_col3);

Ceci est inestimable pour une requête qui a mon col3 dans la liste de sélection, et mes col1 et my_col2 dans la clause where.

4voto

tdc Points 1159

Pour les pytables en python, les index n'ont pas de noms et sont liés à des colonnes simples:

 tables.columns.column_name.createIndex()
 

4voto

David Manheim Points 1391

Dans SQL Server, vous pouvez effectuer les opérations suivantes: (MSDN Lien pour la liste complète des options.)

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> ( column [ ASC | DESC ] [ ,...n ] ) 
    [ INCLUDE ( column_name [ ,...n ] ) ]
    [ WHERE <filter_predicate> ]

(en ignorant d'autres options avancées...)

Le nom de chaque Indice doit être unique base de données à l'échelle.

Tous les index peuvent avoir plusieurs colonnes, et chaque colonne est triée dans l'ordre que vous voulez.

Les index en cluster sont uniques - un par table. Ils ne peuvent pas avoir INCLUDEd colonnes.

Les index non-cluster ne sont pas uniques, et peut contenir jusqu'à 999 par table. Ils peuvent avoir des colonnes incluses, et où l'une des clauses.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X