Rendre vos tables aussi compactes que possible
<<<
Index de colonnes Index sur plusieurs colonnes
>>>

7.4 Optimiser la structure de la base de données
7 Optimisation de MySQL
 Manuel de Référence MySQL 4.1 : Version Française

Conception
Rendre vos tables aussi compactes que possible
->Index de colonnes
Index sur plusieurs colonnes
Comment MySQL utilise les index
Le cache de clé des tables MyISAM
Comment MySQL compte les tables ouvertes
Quand MySQL ouvre et ferme les tables
Inconvénients de la création d'un grand nombre de tables dans la même base de données

7.4.3 Index de colonnes

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. 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: Index de colonne .

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 Fonctions de recherche en texte plein 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 .

<< Index de colonnes >>
Rendre vos tables aussi compactes que possible Optimiser la structure de la base de données Index sur plusieurs colonnes