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é).
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 .