En lang VARCHAR
gemmes på samme måde som en TEKST /
BLOB
felt i InnoDB
(som jeg antager, at du bruger til transaktionalitet, referentiel integritet og nedbrudsgendannelse, ikke?) - altså eksternt til resten af tabellen på disken (hvilket kan kræve, at en anden disk skal læses for at hente).
Medmindre du skal indeksere disse kolonner (i hvilket tilfælde VARCHAR
). er meget hurtigere) er der ingen grund til at bruge VARCHAR
over TEKST
for lange felter - der er nogle motorspecifikke optimeringer i MySQL
at justere datahentningen efter længde, og du bør bruge den korrekte kolonnetype for at udnytte disse.
I tilfælde af at du bruger MyISAM
en dybdegående diskussion om emnet er her .