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.