Un lungo VARCHAR
viene memorizzato allo stesso modo di un TEXT
/BLOB
campo in InnoDB
.
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 .
TEXT
e BLOB
vengono archiviati fuori dalla tabella con la tabella che ha solo un puntatore alla posizione dell'archiviazione effettiva.
VARCHAR
viene memorizzato in linea con la tabella. VARCHAR
è più veloce quando la dimensione è ragionevole.
Secondo questo test
, VARCHAR
è circa tre volte più veloce del testo.