Heim >Datenbank >MySQL-Tutorial >Wie ändern sich die VARCHAR-Längen zwischen MySQL 4 und 5?
MySQL VARCHAR-Längen: Navigieren durch die Verwirrung von Bytes und Zeichen
In MySQL variiert die Interpretation der VARCHAR(n)-Spaltenlängen je nach auf der Datenbankversion. In Versionen vor 4.1 wurden Spaltenlängen in Bytes definiert. In MySQL 5 und höher werden Längen jedoch in Zeicheneinheiten interpretiert.
Byte-Anzahl: MySQL Version 4
In MySQL Version 4 eine VARCHAR(32)-Spalte könnte 32 Byte Daten aufnehmen. Daher hängt das Speichern von Multibyte-Zeichen in diesem Feld von der spezifischen Zeichenkodierung ab und erfordert möglicherweise mehr Bytes pro Zeichen.
Zeichenanzahl: MySQL Version 5 und höher
Ab MySQL Version 4 werden die Spaltenlängen durch die Zeichenanzahl bestimmt. Eine VARCHAR(32)-Spalte in UTF-8 erlaubt 32 Zeichen. Multibyte-UTF-8-Zeichen belegen in diesem Fall immer noch mehrere Bytes, aber die Spaltenlängenberechnung berücksichtigt die Anzahl der Zeichen und nicht die Bytes.
MySQL-Dokumentationsbestätigung
Zur weiteren Verdeutlichung heißt es in der offiziellen Dokumentation zu MySQL 5: „MySQL interpretiert Längenangaben in Zeichenspaltendefinitionen in Zeicheneinheiten ... Dies gilt für CHAR, VARCHAR und den TEXT.“ Typen.“
Auswirkungen von UTF-8 auf die maximale Länge von VARCHAR
Interessanterweise wird die maximale Länge einer VARCHAR-Spalte auch vom Zeichensatz beeinflusst. In MySQL 5.0.3 und höher können beispielsweise utf8-Zeichen bis zu drei Bytes pro Zeichen erfordern. Daher kann eine VARCHAR-Spalte mit UTF-8 eine maximale deklarierte Länge von 21.844 Zeichen haben (65.535 Bytes / 3 Bytes pro Zeichen).
Das obige ist der detaillierte Inhalt vonWie ändern sich die VARCHAR-Längen zwischen MySQL 4 und 5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!