Długi VARCHAR
jest przechowywany w taki sam sposób jak TEXT
/BLOB
pole w InnoDB
.
Chyba że musisz indeksować te kolumny (w takim przypadku VARCHAR
jest znacznie szybszy) nie ma powodu, aby używać VARCHAR
ponad TEXT
dla długich pól - w MySQL
są pewne optymalizacje specyficzne dla silnika aby dostroić pobieranie danych do długości, i powinieneś użyć właściwego typu kolumny, aby z nich skorzystać.
Jeśli używasz MyISAM
dogłębną dyskusję na ten temat można znaleźć tu .
TEXT
i BLOB
są przechowywane poza tabelą, przy czym tabela ma tylko wskaźnik do lokalizacji rzeczywistego miejsca przechowywania.
VARCHAR
jest przechowywany w linii z tabelą. VARCHAR
jest szybszy, gdy rozmiar jest rozsądny.
Według ten test
, VARCHAR
jest około trzy razy szybszy niż tekst.