Ein langer VARCHAR
wird wie ein TEXT
gespeichert /BLOB
Feld in InnoDB
.
Es sei denn, Sie müssen diese Spalten indizieren (in diesem Fall VARCHAR
ist viel schneller) gibt es keinen Grund, VARCHAR
zu verwenden über TEXT
für lange Felder - es gibt einige Engine-spezifische Optimierungen in MySQL
um den Datenabruf entsprechend der Länge abzustimmen, und Sie sollten den richtigen Spaltentyp verwenden, um diese Vorteile zu nutzen.
Falls Sie MyISAM
verwenden Eine ausführliche Diskussion zu diesem Thema finden Sie hier .
TEXT
und BLOB
werden außerhalb der Tabelle gespeichert, wobei die Tabelle nur einen Zeiger auf den Ort der tatsächlichen Speicherung hat.
VARCHAR
wird inline mit der Tabelle gespeichert. VARCHAR
ist schneller, wenn die Größe angemessen ist.
Laut diesem Test
, VARCHAR
ist etwa dreimal so schnell wie Text.