Mysql
 sql >> Base de données >  >> RDS >> Mysql

VARCHAR vs TEXT dans MySQL

Un long VARCHAR est stocké de la même manière qu'un TEXT /BLOB champ dans InnoDB (que je suppose que vous utilisez pour la transactionnalité, l'intégrité référentielle et la récupération sur incident, n'est-ce pas ?) - c'est-à-dire en externe au reste de la table sur le disque (ce qui peut nécessiter une autre lecture de disque pour être récupéré).

source

Sauf si vous avez besoin d'indexer ces colonnes (auquel cas VARCHAR est beaucoup plus rapide) il n'y a aucune raison d'utiliser VARCHAR sur TEXT pour les champs longs - il existe des optimisations spécifiques au moteur dans MySQL pour régler la récupération des données en fonction de la longueur, et vous devez utiliser le type de colonne correct pour en tirer parti.

Si vous utilisez MyISAM une discussion approfondie sur le sujet est ici .