Mysql
 sql >> Datenbank >  >> RDS >> Mysql

VARCHAR vs. TEXT in MySQL

Ein langer VARCHAR wird wie ein TEXT gespeichert /BLOB Feld in InnoDB (wovon ich annehme, dass Sie es für Transaktionalität, referenzielle Integrität und Wiederherstellung nach einem Absturz verwenden, oder?) - das heißt, extern zum Rest der Tabelle auf der Festplatte (was möglicherweise einen weiteren Festplattenlesevorgang zum Abrufen erfordert).

Quelle

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 .