:: DEVELOPER ZONE
Tous les types de colonnes ed MySQL peuvent être indexés. L'utilisation des index
sur les colonnes pertinentes est la meilleur fa¸on d'améliorer les performances
de opérations de SELECT.
Le nombre maximum de clefs et la longueur maximale des index sont définis pour chaque type de table. See Chapitre 15, Types de tables MySQL. Vous pouvez avec tous les gestionnaires de tables avoir au moins 16 clefs et une taille totale d'index d'au moins 256 octets.
Pour les colonnes CHAR et VARCHAR , il est possible d'indexer un
préfixe de la colonne. C'est plus rapide et plus économe en espace disque que
l'indexation de la colonne entière. La syntaxe pour indexer le début d'une colonne
au moment de la création de la table ressemble à cela:
See Section 7.4.3, « Index de colonnes ».
Les moteurs de tables MyISAM et (depuis MySQL 4.0.14) InnoDB supportent
aussi l'indexation des colonnes BLOB et TEXT. Lors de
l'indexation d'une colonne BLOB ou TEXT, vous devez spécifier
une taille pour l'index. Par exemple :
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
Les préfixes peuvent atteindre 255 octets de longeur (ou 1000 octets pour les tables
MyISAM et InnoDB depuis MySQL 4.1.2). Notez que les limites de
préfixes sont mesurées en octets, alors que la limite de préfixe dans la commande
CREATE TABLE est interprétée comme un nombre de caractères. Prenez le en compte
lorsque vous spécifiez une taille de préfixe pour une colonne qui utilise un
jeu de caractères multi-octets.
Depuis MySQL 3.23.23, vous pouvez aussi créer des index FULLTEXT.
Ils sont utilisés pour les recherches en texte plein. Seules les tables MyISAM
supportent les index FULLTEXT et uniquement pour les colonnes CHAR, VARCHAR,
et TEXT. L'indexation se fait sur toute la largeur de la colonne. L'indexation
par préfixe n'est pas possible. Voyez la section Section 13.6, « Recherche en texte intégral (Full-text) dans MySQL » pour plus de
détails.
Depuis MySQL 4.1.0, vous pouvez créer des index spatiaux. Actuellement, le type
de données spatial n'est supporté que par les tables MyISAM. Les
données spatiales utilisent un R-tree.
Le moteur de tables MEMORY (HEAP) supporte les index hash. Depuis
MySQL 4.1.0, ce moteur supporte aussi les index B-tree.
© 1995-2005 MySQL AB. All rights reserved.
