Heim > Datenbank > MySQL-Tutorial > Was ist das MySQL-Äquivalent von varchar(max)?

Was ist das MySQL-Äquivalent von varchar(max)?

Barbara Streisand
Freigeben: 2024-12-13 03:15:10
Original
619 Leute haben es durchsucht

What's the MySQL Equivalent of varchar(max)?

Untersuchung des Äquivalents von varchar(max) in MySQL

MySQL bietet kein explizites Äquivalent zu varchar(max) Datentyp, der in anderen Datenbanksystemen verwendet wird. Es gibt jedoch Möglichkeiten, eine ähnliche Funktionalität innerhalb der Einschränkungen von MySQL zu erreichen.

VARCHAR-Größenbeschränkungen

Standardmäßig ist die maximale Länge eines VARCHAR-Feld in MySQL ist 255 Zeichen lang. Um diese Grenze zu erweitern, können wir die Syntax VARCHAR(length) verwenden. Diese Länge unterliegt jedoch immer noch der maximalen Zeilengröße in MySQL, die 64 KB beträgt (ohne BLOBs).

Zum Beispiel:

VARCHAR(65535)
Nach dem Login kopieren

Dadurch wird ein VARCHARFeld mit einer maximalen Länge von 65535 Zeichen.

Zeichensatz Überlegungen

Multibyte-Zeichensätze wie UTF8 reduzieren die effektive Länge von

VARCHAR-Feldern. In UTF8 kann jedes Zeichen mehrere Bytes Speicherplatz belegen. Dies bedeutet, dass die tatsächliche maximale Länge eines VARCHAR-Felds mit UTF8 kleiner ist:

VARCHAR(21844) CHARACTER SET utf8
Nach dem Login kopieren

Beispiele für VARCHAR-Längenbeschränkungen

Die Bei der Berechnung der maximalen Zeilengröße muss der Speicheraufwand für die

VARCHAR-Längenkodierung berücksichtigt werden, damit die maximale Länge ermittelt werden kann ist etwas kleiner als die maximale Zeilengröße.

CREATE TABLE foo ( v VARCHAR(65534) );
ERROR 1118 (42000): Row size too large...
Nach dem Login kopieren
Eine leichte Reduzierung der Länge ermöglicht jedoch die Erstellung der Tabelle:

CREATE TABLE foo ( v VARCHAR(65532) );
Query OK, 0 rows affected...
Nach dem Login kopieren
Durch die Verwendung eines Multibyte-Zeichensatzes wird die Länge noch weiter reduziert die maximale Länge aufgrund des größeren Speicherplatzes, der für jedes Zeichen benötigt wird:

CREATE TABLE foo ( v VARCHAR(65532) ) CHARSET=utf8;
ERROR 1074 (42000): Column length too big for...
Nach dem Login kopieren
Zusammenfassend lässt sich sagen, dass MySQL zwar kein genaues Äquivalent dazu hat

varchar(max), der Datentyp VARCHAR(length) bietet eine Möglichkeit, große Textwerte innerhalb der Einschränkungen der maximalen Zeilengröße und des verwendeten Zeichensatzes aufzunehmen.

Das obige ist der detaillierte Inhalt vonWas ist das MySQL-Äquivalent von varchar(max)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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