En lång VARCHAR lagras på samma sätt som en TEXT /BLOB fältet i InnoDB .
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 .
TEXT och BLOB lagras utanför bordet med tabellen bara med en pekare till platsen för den faktiska lagringen.
VARCHAR lagras i linje med tabellen. VARCHAR är snabbare när storleken är rimlig.
Enligt det här testet
, VARCHAR är ungefär tre gånger så snabbt som text.