Question

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

Pour un aperçu du fonctionnement de l'indexation, consultez : Comment fonctionne l’indexation d’une base de données ?

Était-ce utile?

La solution

Ce qui suit est la norme SQL92 et devrait donc être pris en charge par la majorité des SGBDR qui utilisent SQL :

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

Autres conseils

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

create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);

Ceci est inestimable pour une requête qui a my_col3 dans la liste de sélection, et my_col1 et my_col2 dans la clause où.

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

tables.columns.column_name.createIndex()

Dans SQL Server, vous pouvez effectuer les opérations suivantes :(Lien MSDN à 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 certaines options plus avancées...)

Le nom de chaque index doit être unique dans toute la base de données.

Tous les index peuvent avoir plusieurs colonnes et chaque colonne peut être classée dans l’ordre souhaité.

Les index clusterisés sont uniques : un par table.Ils ne peuvent pas avoir INCLUDEd colonnes.

Les index non clusterisés ne sont pas uniques et peuvent en contenir jusqu'à 999 par table.Ils peuvent inclure des colonnes et des clauses Where.

Pour créer des index, les éléments suivants peuvent être utilisés :

  1. Crée un index sur une table.Les valeurs en double sont autorisées :CREATE INDEX index_name ON table_name (column_name)

  2. Crée un index unique sur une table.Les valeurs en double ne sont pas autorisées :CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. Index clusterisé : CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. Index non clusterisé :
    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

Référer: http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server pour plus de détails.

  1. CREATE INDEX name_index ON Employee (Employee_Name)

  2. Sur une multi-colonne : CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)

Étant donné que la plupart des réponses sont données pour les bases de données SQL, j'écris ceci pour les bases de données NOSQL, en particulier pour MongoDB.

Vous trouverez ci-dessous la syntaxe pour créer un index dans MongoDB à l'aide du shell mongo.

db.collection.createIndex( <key and index type specification>, <options> )

exemple - db.collection.createIndex( { name: -1 } )

Dans l'exemple ci-dessus, un seul index descendant de la clé est créé sur le champ Nom.

Gardez à l'esprit que les index MongoDB utilisent la structure de données B-tree.

Il existe plusieurs types d'index que nous pouvons créer dans mongodb, pour plus d'informations, reportez-vous au lien ci-dessous - https://docs.mongodb.com/manual/indexes/

Un index n'est pas toujours nécessaire pour toutes les bases de données.Par exemple :Kognitio, alias le moteur WX2, n'offre pas de syntaxe d'indexation car le moteur de base de données s'en charge implicitement.Les données sont transmises via un partitionnement circulaire et Kognitio WX2 récupère les données sur et hors du disque de la manière la plus simple possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top