En lång VARCHAR
lagras på samma sätt som en TEXT
/BLOB
fältet i InnoDB
(som jag antar att du använder för transaktionalitet, referensintegritet och kraschåterställning, eller hur?) - det vill säga externt till resten av tabellen på disken (vilket kan kräva att en annan disk läsas för att hämta).
Såvida du inte behöver indexera dessa kolumner (i vilket fall VARCHAR
). är mycket snabbare) finns det ingen anledning att använda VARCHAR
över TEXT
för långa fält - det finns några motorspecifika optimeringar i MySQL
för att ställa in datahämtningen efter längd, och du bör använda rätt kolumntyp för att dra nytta av dessa.
Om du använder MyISAM
en djupgående diskussion om ämnet finns här .