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 verwenden Sie dl(dt,dd), ul(li), ol(li) in HTML

HTML <dl> Tag #Definition und Verwendung Da...

Natives JS zur Implementierung der Drag-Position-Vorschau

In diesem Artikel wird eine kleine Demo gezeigt, ...

202 kostenlose, hochwertige XHTML-Vorlagen (1)

Hier präsentiert 123WORDPRESS.COM den ersten Teil...

Detaillierte Schritte zum Erstellen eines NFS-Dateifreigabeservers unter Linux

Linux erstellt NFS-Server Um den Datenaustausch z...

MySQL-Fremdschlüsseleinschränkung (FOREIGN KEY) Fallerklärung

Die MySQL-Fremdschlüsseleinschränkung (FOREIGN KE...

Importieren von CSS-Dateien unter Verwendung von Beurteilungsbedingungen

Lösung 1: Verwenden Sie bedingten Import im HTML-...

CentOS 7.5 stellt Varnish-Cache-Serverfunktion bereit

1. Einführung in Varnish Varnish ist ein leistung...

Verwenden von js zum Implementieren eines Zahlenratespiels

Letzte Woche gab mir der Lehrer eine kleine Hausa...

CSS3-Animation zum Erzielen des Streamer-Button-Effekts

Beim Erlernen von CSS3 habe ich festgestellt, das...

Beispiel für reines CSS zum Ändern des Bildlaufleistenstils des Browsers

Verwenden Sie CSS, um den Stil der Bildlaufleiste...