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

jQuery implementiert die Anzeige und Ausblendung von Anzeigenanimationen

Wir sehen oft, dass Anzeigen nach ein paar Sekund...

Analyse des HTML-Schreibstils und Gründe erfahrener Leute

1. Navigation: Ungeordnete Liste vs. andere Besch...

Mein CSS-Framework – base.css (Browser-Standardstil zurücksetzen)

Code kopieren Der Code lautet wie folgt: @Zeichen...

Lösung für den Fehler beim Aufruf von Yum im Docker-Container

Beim Ausführen von yum im Dockerfile oder im Cont...

CSS3 ändert den Bildlaufleistenstil des Browsers

Hinweis: Diese Methode ist nur auf WebKit-basiert...

JavaScript zum Erzielen eines einfachen Drag-Effekts

In diesem Artikel wird der spezifische JavaScript...

So installieren Sie OpenSuse auf Virtualbox

Die virtuelle Maschine wird auf dem Hostcomputer ...

Fabric.js implementiert DIY-Postkartenfunktion

In diesem Artikel wird der spezifische Code von F...

Einfache Analyse von EffectList in React

Inhaltsverzeichnis EffectList-Sammlung Effektlist...

Gängige Methoden und Probleme der Docker-Bereinigung

Wenn Sie Docker für die Entwicklung im großen Maß...

Zusammenfassung der CSS-Methoden zum Löschen von Floats

Float wird häufig im Layout von Webseiten verwend...