MySQL konnte vor Version 5.0.3 255 Zeichen speichern, ab Version 5.0.3 sind es jedoch 65.535 Zeichen.
In der offiziellen MySQL-Dokumentation heißt es:
Die effektive maximale Länge von VARCHAR in MySQL 5.0.3 und höher hängt von der maximalen Zeilengröße (65.535 Bytes, die von allen Spalten gemeinsam genutzt wird) und dem verwendeten Zeichensatz ab. UTF8-Zeichen erfordern beispielsweise möglicherweise bis zu drei Bytes pro Zeichen, sodass eine VARCHAR-Spalte, die den UTF8-Zeichensatz verwendet, mit maximal 21.844 Zeichen deklariert werden kann.
Bitte beachten Sie, dass die maximale Zeilengröße 65.535 Byte beträgt. Das bedeutet, dass die Gesamtgröße einschließlich aller Spalten 65.535 Bytes nicht überschreiten sollte.
Sehen wir uns an, was passiert, wenn dieser Grenzwert verletzt wird:
Dies ist eine Tabelle mit zwei Spalten, „eins“ ist ein Varchar der Länge 32.765 und „zwei“ ist ein Varchar der Länge 32.766.
Länge = 32765 + 2 + 32766 + 2 = 65535.
CREATE TABLE IF NOT EXISTS `mytable` ( `one` varchar(32765) NOT NULL, `two` varchar(32766) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Jetzt erhöhen wir die Spaltenlänge -
CREATE TABLE IF NOT EXISTS `mytable` ( `one` varchar(32767) NOT NULL, `two` varchar(32770) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Das Obige gibt den folgenden Fehler aus -
#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
Das Obige zeigt sich selbst -
The maximum row size is 65,535 bytes. If it exceeds, an error will be visible.
Das obige ist der detaillierte Inhalt vonWas ist die maximale Größe eines MySQL VARCHAR?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!