sql - Comment indexer une colonne de base de données

Translate

J'espère que je pourrai 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 de la base de données?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

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

CREATE INDEX [index name] ON [table name] ( [column name] )
La source
Translate

Sql Server 2005vous 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 amy_col3dans la liste de sélection, etmy_col1etmy_col2dans la clause where.

La source
tdc
Translate

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

tables.columns.column_name.createIndex()
La source
Translate

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 à l'échelle de la base de données.

Tous les index peuvent avoir plusieurs colonnes et chaque colonne peut être classée dans l'ordre de votre choix.

Les index clusterisés sont uniques - un par table. Ils ne peuvent pas avoirINCLUDEd colonnes.

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

La source
Translate

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 groupé: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-Serverpour plus de détails.

La source
Translate
  1. CREATE INDEX name_index ON Employee (Employee_Name)

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

La source
Translate

Comme 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, spécifiquement 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 index décroissant de clé unique est créé sur le champ de 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/

La source
Translate

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 pour l'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 obtient les données sur et hors du disque de la manière la plus simple possible.

La source
Translate

Nous pouvons utiliser la syntaxe suivante pour créer un index.

CREATE INDEX <index_name> ON <table_name>(<column_name>)

Si nous ne voulons pas que la valeur en double soit autorisée, nous pouvons ajouterUNIQUElors de la création de l'index comme suit

CREATE UNIQUE INDEX <index_name> ON <table_name>(<column_name>)

Nous pouvons créer un index sur plusieurs colonnes en donnant le nom de plusieurs colonnes séparées par ','

La source