7.5 Tables InnoDB
7 Types de tables MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Présentation des tables InnoDB . Options de démarrage InnoDB . Créer des bases InnoDB . Créer des tables InnoDB . Ajouter et retirer des données et des logs InnoDB . Sauver et restaurer une base InnoDB . Transférer une base de données InnoDB vers une autre machine . Modèle transactionnel de InnoDB . Implémentation du multi-versionnage ->Structures de tables et d'index . Gestion de l'espace fichiers et des entrées/sorties disque . Gestion des erreurs . Restrictions sur les tables InnoDB . Historique de l'évolution InnoDB . Informations de contact InnoDB
|
7.5.10 Structures de tables et d'index MySQL enregistre la structure de table dans le fichier
.frm
,
du dossier de données. Mais les tables InnoDB ont aussi leur propre
entrée dans les tables internes InnoDB. Lorsque MySQL efface une
table ou une base, il efface le ou les fichiers
.frm
et aussi
les lignes correspondantes dans les tables d'administration InnoDB.
C'est la raison qui fait que vous ne pouvez pas déplacer les tables
InnoDB entre les bases simplement en déplaçant le fichier
.frm
,
et pourquoi
DROP DATABASE
ne fonctionnait pas sous InnoDB
en MySQL versions <= 3.23.43.
Chaque table InnoDB a un index spécial appelé un index en grappe, où les
données des lignes sont enregistrées. Si vous définissez une clé primaire
pour votre table
PRIMARY KEY
, alors l'index de la clé primaire
de la table sera un index en grappe.
Si vous ne définissez pas de clé primaire pour votre table, InnoDB
va générer un index en grappe, ou les lignes sont ordonnées dans
l'ordre des identifiants que InnoDB assigne aux lignes de la table.
L'identifiant de ligne vaut 6 octets, et s'accroît au fur et à mesure
que les lignes sont ajoutées. Les lignes sont alors ordonnées dans
leur ordre d'insertion.
Accéder à une ligne via l'index en grappe est rapide, car la ligne
de données sera dans la même page que l'index. Dans de nombreuses
bases, les données sont traditionnellement stockées dans un autre
endroit. Si la table est grand, l'index en grappe économise de nombreux
accès disques, comparativement aux solutions traditionnelles.
Les lignes des index qui ne sont pas en grappe (ce sont les index
secondaires) dans InnoDB, contiennent la valeur de la clé primaire
de la ligne. InnoDB utilise cette clé primaire pour rechercher la valeur
de la ligne dans l'index en grappe. Notez que si la clé primaire est longue,
les index secondaires utiliseront plus de place.
Sommaire :
|