Chaque ligne d'index de InnoDB contient
            un entête de 6 octets. L'entête est utilisé pour lier des
            lignes consécutives ensembles, et aussi pour le
            verrouillage de ligne.
          
Les lignes dans un index en grappe contient des champs pour toutes les colonnes définies par l'utilisateur. De plus, il y a un champ de 6 octets pour l'identification de transaction, et un champs de 7 octets pour le pointeur d'annulation.
Si l'utilisateur n'a pas défini de clé primaire pour la table, chaque ligne de l'index en grappe contient aussi une colonne supplémentaire de 6 octets, qui sert d'identification.
Chaque ligne d'index secondaire contient aussi les champs définis pour la clé de l'index en grappe.
Une ligne contient aussi un pointeur pour chaque champs de la ligne. Si la taille totale des champs représentent moins de 128 octets, alors le pointeur fait 1 octets, sinon 2.
            En interne, InnoDB stocke les colonnes de
            taille fixe comme CHAR(10) dans un format
            à taille fixe. InnoDB supprime les
            espaces terminaux des colonnes VARCHAR.
            Notez que MySQL peut convertir en interne les colonnes
            CHAR en VARCHAR. See
            Section 13.2.5.1, « Modification automatique du type de colonnes ».
          
            Une valeur SQL NULL réserve 0 octets si
            elle est stockée dans une colonne à taille variable. Dans
            une colonne à taille fixe, elle utilise toute la largeur de
            la colonne. La raison de la réservation de toute la colonne
            pour les valeurs NULL est que lors de la
            mise à jour de la colonne depuis la valeur
            NULL vers une valeur non-nulle, il n'y
            aura pas de fragementation sur le disque.
          
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

