7.2.1 Tailles nécessaires pour le stockage de types de colonnes

Voici la liste des espaces mémoire requis, par type.

7.2.2 Types numériques

Column type Storage required
TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT 4 bytes
INTEGER 4 bytes
BIGINT 8 bytes
FLOAT(4) 4 bytes
FLOAT(8) 8 bytes
FLOAT 4 bytes
DOUBLE 8 bytes
DOUBLE PRECISION 8 bytes
REAL 8 bytes
DECIMAL(M,D) M bytes (D+2, if M < D)
NUMERIC(M,D) M bytes (D+2, if M < D)

7.2.3 Types date et heure

Column type Storage required
DATETIME 8 bytes
DATE 3 bytes
TIMESTAMP 4 bytes
TIME 3 bytes
YEAR 1 byte

7.2.4 Types chaîne

Column type taille requise
CHAR(M) M octets, 1 <= M <= 255
VARCHAR(M) L+1 bytes, avec L <= M et 1 <= M <= 255
TINYBLOB, TINYTEXT L+1 octets, where L < 2^8
BLOB, TEXT L+2 octets, where L < 2^16
MEDIUMBLOB, MEDIUMTEXT L+3 octets, where L < 2^24
LONGBLOB, LONGTEXT L+4 octets, where L < 2^32
ENUM('value1','value2',...) 1 ou 2 octets, suivant le nombre de valeur dans l'énumeration (65535 au maximum)
SET('value1','value2',...) 1, 2, 3, 4 ou 8 octets, suivant le nombre de membre de l'ensemble (64 membres au maximum)

Les types VARCHAR, BLOB et TEXT sont des types à longueur variable, dont taille de stockage dépend plus de la valeur qui leur est assignée que de leur taille maximale. Par exemple, une colonne de type VARCHAR(10) peut contenir une chaîne de 10 caractères aux maximum. La taille réelle nécessaire est la longueur de la chaîne, plus 1 octet, qui stockera la taille réelle de la chaîne. Par exemple, la chaîne 'abcd' occupe 5 octets.

Les types BLOB et TEXT ont besoin de 1, 2, 3 ou 4 octets pour stocker la taille de la colonne, en fonction du type.

Si une table possède au moins une colonne de longueur variable, l'enregistrement sera aussi de longueur variable. Il faut noter que lorsqu'une table est créée, MySQL peut, sous certaines conditions, changer le type d'une colonne de longueur variable en un type de colonne de longueur fixe, et vice-versa. Pour plus de détails, 7.6.1 Modifications automatiques de type de colonne.

La taille d'un objet ENUM est déterminé par le nombre d'énumération différentes. 1 octet est suffisant pour décrire une énumération qui a jusqu'à 255 valeurs différentes ; 2 octets sont nécessaires décrire une énumération qui aurait jusqu'

La taille d'un objet SET est déterminé par le nombre d'élément distinct qu'il contient. Si la taille d'un SET est N, le SET occupera (N+7)/8 octets, arrondi aux entiers 1,2,3,4, ou 8 octets. Un ensemble peut contenir jusqu'à 64 éléments.