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 .