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

So verbergen und entfernen Sie Bildlaufleisten in HTML

1. HTML-Tags mit Attributen XML/HTML-CodeInhalt i...

HTML-Beispielcode zum Lesen und Anzeigen von Bildern in einem lokalen Ordner

Ein Zweck Wählen Sie auf der HTML-Seite einen lok...

Implementierungsprinzip und Prozessanalyse der TCP-Leistungsoptimierung

Drei-Wege-Handshake-Phase Anzahl der Wiederholung...

Ubuntu20.04 VNC-Installation und Konfigurationsimplementierung

VNC ist ein Remote-Desktop-Protokoll. Befolgen Si...

Ein Leitfaden zur Optimierung leistungsstarker Websites

Goldene Regeln der Leistung: Nur 10 bis 20 % der ...

Docker Link realisiert die Containerverbindung

Inhaltsverzeichnis 1.1. Netzwerkzugriff zwischen ...

Detaillierte Erklärung der Verwendung und Funktion des MySQL-Cursors

[Verwendung und Funktion des MySQL-Cursors] Beisp...

Vue.js implementiert das Neun-Raster-Bildanzeigemodul

Ich habe Vue.js verwendet, um ein Bildanzeigemodu...

Element-Beispielcode zum Implementieren dynamischer Tabellen

Inhaltsverzeichnis 【Code-Hintergrund】 【Code-Imple...