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.