Heim > Datenbank > MySQL-Tutorial > Wie funktionieren VARCHAR-Längen in MySQL mit UTF-8: Bytes oder Zeichen?

Wie funktionieren VARCHAR-Längen in MySQL mit UTF-8: Bytes oder Zeichen?

Barbara Streisand
Freigeben: 2024-11-22 02:21:13
Original
630 Leute haben es durchsucht

How do VARCHAR lengths work in MySQL with UTF-8: Bytes or Characters?

MySQL VARCHAR-Längen und UTF-8: Bytes versus Zeichen

Beim Erstellen eines VARCHAR-Felds in einer MySQL-Tabelle ist es wichtig zu verstehen, wie die angegebene Länge wird interpretiert. In MySQL-Versionen vor 4.1 wurden VARCHAR-Längen in Bytes definiert. Ab MySQL 4.1 werden Längen jedoch in Zeichen gezählt.

Das Feld VARCHAR(32) in einer UTF-8-Tabelle repräsentiert 32 Zeichen, nicht 32 Bytes. Dies liegt daran, dass UTF-8 eine Codierung mit variabler Länge ist, bei der jedes Zeichen mehrere Bytes (bis zu 4 Bytes) belegen kann.

In der offiziellen MySQL-Dokumentation für Version 5 heißt es:

"MySQL interpretiert Längenangaben in Zeichenspaltendefinitionen in Zeicheneinheiten. Dies gilt für CHAR, VARCHAR und die TEXT-Typen.“

Die maximale Länge einer VARCHAR-Spalte beträgt jedoch auch von UTF-8 beeinflusst. In MySQL 5.0.3 und höher ist die effektive maximale Länge durch die Zeilengröße (65.535 Bytes) und den verwendeten Zeichensatz begrenzt.

Zum Beispiel, da UTF-8-Zeichen bis zu 3 Bytes pro Zeichen erfordern können kann eine VARCHAR-Spalte mit UTF-8 mit maximal 21.844 Zeichen deklariert werden. Dies liegt daran, dass 21.844 multipliziert mit 3 (Bytes pro Zeichen) 65.532 ergibt, sodass ein Puffer von 3 Bytes für andere Spaltendaten innerhalb der maximalen Zeilengröße verbleibt.

Das obige ist der detaillierte Inhalt vonWie funktionieren VARCHAR-Längen in MySQL mit UTF-8: Bytes oder Zeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage