Quelle est la limite des champs TINYTEXT, TEXT, MEDIUMTEXT ou LONGTEXT dans MySQL ?
MySQL supporte quatre types de champs TEXT :
- TINYTEXT,
- TEXT,
- MEDIUMTEXT
- et LONGTEXT
Chacun de ces types possède une taille maximum que nous verrons un peu plus loin.
En fait, le moteur de stockage MyISAM autorise des tables avec des tuples (lignes) d'une taille maximale de 65535 octets. L'ensemble des données d'un même tuple ne peut donc pas dépasser cette limite.
Alors, il n'est pas possible de stocker plus de 65535 octets par tuple ? Eh bien si, et heureusement pour nous. Lorsque l'on utilise les champs TEXT (c'est-à-dire TINYTEXT, TEXT, MEDIUMTEXT et LONGTEXT), MySQL stocke les données en dehors de la table elle-même. De fait, les champs TEXT peuvent stocker bien plus de données.
Les champs TEXT sont capables de stocker bien plus de données que les VARCHAR ou CHAR. Ils sont alors utiles pour enregistrer le contenu d'une page Web par exemple.
La limite pour chacun de ces champs est la suivante :
- TINYTEXT :
2^8 - 1
, soit 255 octets - TEXT :
2^16 - 1
, soit 65 535 octets (env. 64 Ko) - MEDIUMTEXT :
2^24 - 1
, soit 16 777 215 octets (env. 16 Mo) - LONGTEXT :
2^32 - 1
, soit 4 294 967 295 octets (env. 4 Go)
- [Page supprimée] http://dev.mysql.com/doc/refman/5.0/fr/string-type-overview.html
- dev.mysql.com/doc/refman/5.7/en/string-type-overview.html