MySQL VARCHAR-Längen und UTF-8: Klärung der Verwirrung
Beim Erstellen eines VARCHAR(32)-Feldes in einer UTF-8-Tabelle in Bei MySQL stellt sich die Frage: Stellt es eine Speicherkapazität von 32 Bytes oder 32 Zeichen dar? Das Verständnis dieser Unterscheidung kann je nach MySQL-Version variieren.
VARCHAR-Längen verstehen
In MySQL 5.0.3 und späteren Versionen werden VARCHAR-Längen in Zeicheneinheiten interpretiert , keine Bytes. Das bedeutet, dass ein VARCHAR(32)-Feld bis zu 32 Zeichen aufnehmen kann, unabhängig vom Speicherplatz, den jedes Zeichen benötigt.
In früheren Versionen von MySQL (4.1 und niedriger) wurden VARCHAR-Längen in Bytes interpretiert. Daher würde ein VARCHAR(32)-Feld in UTF-8 bis zu 32 Byte Daten ermöglichen, die je nach Zeichenkodierung möglicherweise als weniger als 32 Zeichen gespeichert werden könnten.
UTF- 8-Zeichenkodierung
UTF-8 ist eine Zeichenkodierung, die eine breite Palette internationaler Zeichen, einschließlich Multibyte-Zeichen, darstellen kann. Dies bedeutet, dass ein einzelnes UTF-8-codiertes Zeichen mehrere Bytes Speicherplatz beanspruchen kann.
Maximale VARCHAR-Länge mit UTF-8
Aufgrund der Möglichkeit von Multi -Byte UTF-8-Zeichen, die effektive maximale Länge einer VARCHAR-Spalte in MySQL 5.0.3 und höher hängt von der maximalen Zeilengröße (65.535 Bytes) und dem verwendeten Zeichensatz ab. Für den UTF-8-Zeichensatz kann ein VARCHAR eine maximale Länge von etwa 21.844 Zeichen haben, da jedes Zeichen bis zu drei Bytes erfordern kann.
Das obige ist der detaillierte Inhalt vonWie viele Zeichen kann ein VARCHAR(32)-Feld in einer UTF-8-MySQL-Tabelle enthalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!