une - role des index sql




Comment indexer une colonne de base de données (6)

Si tout va bien, je peux 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 base de données?


  1. CREATE INDEX name_index ON Employee (Employee_Name)

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


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] )

Dans SQL Server, vous pouvez effectuer les opérations suivantes: ( Lien MSDN avec 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 pour la base de données.

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

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

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


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 les doublons soient autorisés, nous pouvons ajouter UNIQUE lors 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 plusieurs noms de colonnes séparés par ' , '


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

tables.columns.column_name.createIndex()

Un index n'est pas toujours nécessaire pour toutes les bases de données. Par exemple: Kognitio, également appelé moteur WX2, n'offre pas de syntaxe d'indexation car le moteur de base de données s'en occupe de manière implicite. Les données sont transmises via un partitionnement à tour de rôle et Kognitio WX2 obtient les données sur et hors disque de la manière la plus simple possible.







indexing