Un long VARCHAR
est stocké de la même manière qu'un TEXT
/BLOB
champ dans InnoDB
.
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 .
TEXT
et BLOB
sont stockés hors de la table, la table ayant juste un pointeur vers l'emplacement du stockage réel.
VARCHAR
est stocké en ligne avec la table. VARCHAR
est plus rapide lorsque la taille est raisonnable.
Selon ce test
, VARCHAR
est environ trois fois plus rapide que le texte.