Der Unterschied zwischen den Feldtypen char, varchar und Text in MySQL

Der Unterschied zwischen den Feldtypen char, varchar und Text in MySQL

In MySQL können alle Felder der Typen char, varchar und text zum Speichern von Daten des Typs Zeichen verwendet werden. Sowohl char als auch varchar können eine maximale Zeichenlänge angeben, text hingegen nicht.

Auch die Art und Weise, wie sie Daten speichern und abrufen, ist unterschiedlich.

Die Effizienz des Datenabrufs ist: char > varchar > text

Spezifische Anweisungen:

char: Es ist sehr praktisch, Daten mit fester Länge zu speichern. Der Index im CHAR-Feld ist sehr effizient. Die Länge muss in Klammern angegeben werden und kann einen Standardwert haben. Wenn Sie beispielsweise char(10) definieren, werden unabhängig davon, ob die von Ihnen gespeicherten Daten 10 Bytes erreichen, 10 Bytes Speicherplatz belegt (automatisch mit Leerzeichen gefüllt) und die nachfolgenden Leerzeichen werden bei der Suche ausgeblendet. Daher müssen Sie daran denken, Funktionen wie trim zu verwenden, um Leerzeichen in den abgerufenen Daten herauszufiltern.

varchar: speichert Daten mit variabler Länge, aber die Speichereffizienz ist nicht so hoch wie bei CHAR. Die Länge muss in Klammern angegeben werden und kann einen Standardwert haben. Beim Speichern der Daten erfolgt keine automatische Leerzeichenauffüllung und wenn die Daten Leerzeichen enthalten, bleiben die nachfolgenden Leerzeichen beim Speichern und Abrufen des Wertes erhalten. Darüber hinaus ist die tatsächliche Länge des varchar-Typs die tatsächliche Länge seines Werts + 1. Dieses Byte wird verwendet, um die tatsächlich verwendete Länge zu speichern.

Text: Speichert Nicht-Unicode-Daten mit variabler Länge und einer maximalen Länge von 2^31-1 Zeichen. Die Textspalte kann keinen Standardwert haben. Beim Speichern oder Abrufen findet keine Groß-/Kleinschreibung statt. Wenn Sie später eine Länge angeben, wird kein Fehler gemeldet, aber diese Länge hat keine Auswirkung. Das bedeutet, dass beim Einfügen von Daten diese weiterhin normal eingefügt werden können, auch wenn sie die von Ihnen angegebene Länge überschreiten.

Über Speicherplatz:

Bei Verwendung des UTF8-Zeichensatzes wird es im MySQL-Handbuch folgendermaßen beschrieben:

  • Grundlegende lateinische Buchstaben, Zahlen und Satzzeichen verwenden ein Byte.
  • Die meisten Schriften Europas und des Nahen Ostens passen in eine Zwei-Byte-Sequenz: das erweiterte lateinische Alphabet (einschließlich diakritischer Zeichen, Längezeichen, Gravis, Umlaute und anderer diakritischer Zeichen), Kyrillisch, Griechisch, Armenisch, Hebräisch, Arabisch, Syrisch und andere;
  • Koreanische, chinesische und japanische ideografische Zeichen verwenden Drei-Byte-Sequenzen.

abschließend:

1. Verwenden Sie varchar für Felder, die sich häufig ändern;

2. Wenn Sie die feste Länge kennen, verwenden Sie char;

3. Für Daten über 255 Bytes können nur varchar oder Text verwendet werden.

4. Verwenden Sie keinen Text, wo varchar verwendet werden kann.

5. Wenn Sie numerische Felder verwenden können, versuchen Sie, numerische Typen anstelle von Zeichenfolgentypen zu verwenden. Dies verringert die Abfrage- und Verbindungsleistung und erhöht den Speicheraufwand. Dies liegt daran, dass die Engine bei der Verarbeitung der Abfrage und der Verbindung jedes Zeichen in der Zeichenfolge einzeln vergleicht und für numerische Typen nur ein Vergleich ausreicht.

6. Wenn mehrere große Felder in derselben Tabelle vorhanden sind, versuchen Sie, diese nach Möglichkeit zusammenzuführen. Wenn dies nicht möglich ist, sollten Sie die Tabelle aufteilen. Die Gründe dafür finden Sie unter Optimieren der Speichereffizienz von BLOB- und TEXT-Spalten in InnoDB-Tabellen.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Als der Interviewer nach dem Unterschied zwischen char und varchar in mysql fragte
  • Der Unterschied zwischen char und varchar in MySQL
  • Der Unterschied zwischen VARCHAR- und CHAR-Formatdaten in MySQL
  • Analyse der Unterschiede zwischen char und varchar in der MySQL-Datenbank und Verwendungsvorschläge
  • Analyse des Unterschieds zwischen char und varchar in MySQL
  • Unterschied zwischen varchar- und char-Typen in MySQL

<<:  Detaillierte Erklärung zur Konfiguration einer statischen IP in Centos8

>>:  WeChat-Applet zum Abrufen eines Schrittdatensatzes für Mobiltelefonnummern

Artikel empfehlen

Ausführliche Erklärung der Set- und WeakSet-Sammlungen in ES6

Inhaltsverzeichnis Ein Set ist eine spezielle Sam...

So führen Sie ein Python-Skript auf Docker aus

Erstellen Sie zunächst ein spezielles Projektverz...

Verwendung von Docker-Image-Speicher-Overlays

1. Übersicht Das Image in Docker ist in Schichten...

Methoden zum Defragmentieren und Freigeben von Speicherplatz in MySQL-Tabellen

Inhaltsverzeichnis Ursachen der MySQL-Tabellenfra...

Detaillierte Erklärung des JSON-Dateischreibformats

Inhaltsverzeichnis Was ist JSON Warum diese Techn...

XHTML-Einführungstutorial: Textformatierung und Sonderzeichen

<br />Dieser Abschnitt stellt die Implementi...

So erstellen Sie einen Index für eine Join-Tabelle in MySQL

In diesem Artikel wird erläutert, wie Sie einen I...

So ermitteln Sie, ob das Linux-System auf VMware installiert ist

Wie kann festgestellt werden, ob das aktuelle Lin...

MySQL Installer 8.0.21 Installations-Tutorial mit Bildern und Text

1. Grund Ich musste MySQL nur auf einem neuen Sys...