Un lungo VARCHAR
viene memorizzato allo stesso modo di un TEXT
/BLOB
campo in InnoDB
(che presumo tu stia utilizzando per transazionalità, integrità referenziale e ripristino di arresto anomalo, giusto?), ovvero esternamente al resto della tabella su disco (che potrebbe richiedere la lettura di un altro disco per il recupero).
A meno che non sia necessario indicizzare queste colonne (in tal caso VARCHAR
è molto più veloce) non c'è motivo di usare VARCHAR
su TEXT
per i campi lunghi - ci sono alcune ottimizzazioni specifiche del motore in MySQL
per ottimizzare il recupero dei dati in base alla lunghezza e dovresti usare il tipo di colonna corretto per trarne vantaggio.
Se stai usando MyISAM
una discussione approfondita sull'argomento è qui .