Dlouhý VARCHAR
se ukládá stejným způsobem jako TEXT
/BLOB
pole v InnoDB
(předpokládám, že používáte pro transakční, referenční integritu a obnovu po havárii, že?) - tedy externě ke zbytku tabulky na disku (což může vyžadovat další čtení z disku k načtení).
Pokud nepotřebujete indexovat tyto sloupce (v takovém případě VARCHAR
je mnohem rychlejší) není důvod používat VARCHAR
přes TEXT
pro dlouhá pole – v MySQL
jsou určité optimalizace specifické pro motor vyladit načítání dat podle délky a měli byste použít správný typ sloupce, abyste toho využili.
V případě, že používáte MyISAM
podrobná diskuse na toto téma je zde .