Detaillierte Erläuterung der Wissenspunkte zur Verwendung von TEXT/BLOB-Typen in MySQL

Detaillierte Erläuterung der Wissenspunkte zur Verwendung von TEXT/BLOB-Typen in MySQL

1. Der Unterschied zwischen TEXT und BLOB

Der einzige Unterschied zwischen den TEXT- und BLOB-Familien besteht darin, dass der BLOB-Typ Binärdaten ohne Sortierung oder Zeichensatz speichert, während der TEXT-Typ über einen Zeichensatz oder eine Sortierung verfügt. Einfach ausgedrückt: Wenn Sie Chinesisch speichern möchten, wählen Sie TEXT.

2. Problem mit dem Standardwert

Im strikten Modus können Sie den Standardwert nicht festlegen. Andernfalls erhalten Sie die Fehlermeldung „Kein Standardwert möglich“:

mysql> Tabelle `test`.`text_blob` erstellen( 
 -> `a_text` Text STANDARD ' ' , 
 -> `b_blob`-Blob 
 -> );
FEHLER 1101 (42000): BLOB/TEXT-Spalte „a_text“ kann keinen Standardwert haben

Grund: https://www.jb51.net/article/181667.htm

select @@sql_mode; //Anzeigenmodus

Im Trict-Modus gelten folgende Einschränkungen:

1). Unterstützt nicht das Einfügen von Nullwerten in nicht-Null-Felder

2). Das Einfügen von "Werten" in Autoinkrementfelder wird nicht unterstützt, es können jedoch Nullwerte eingefügt werden

3). Unterstützt keine Standardwerte für Textfelder

3. Sortieren

MySQL sortiert TEXT- und BLOB-Spalten anders als andere Typen: Es werden nur die ersten max_sort_length Bytes jeder Spalte sortiert, nicht der gesamte String.
Der Standardwert ist 1024 und kann über die Konfigurationsdatei geändert werden.

mysql> VARIABLEN WIE 'max_sort_length' ANZEIGEN;
+-----------------+--------+
| Variablenname | Wert |
+-----------------+--------+
| maximale Sortierlänge | 1024 |
+-----------------+--------+
1 Zeile im Satz (0,00 Sek.)

4. Erstellen Sie einen Präfixindex

Normalerweise empfiehlt es sich, die Anfangszeichen als Index festzulegen. Dadurch lässt sich viel Indexplatz sparen und die Indexeffizienz verbessern.

Tabelle ändern Tabelle1 Schlüssel hinzufügen (Text1 (1024));

Wissenspunkterweiterung:

MySQL-Feldentwurfsspezifikationen vermeiden die Verwendung von TEXT/BLOB-Datentypen

1. Beschreibung

Wer in den Ferien Zeit hat, kann sich das Design einiger Tabellen anschauen und viele Probleme feststellen. Das alte System hat über 100 Felder, die viel Mitteltext enthalten und weniger als 5 Millionen Datenvolumen. Die Entwicklungsspezifikationen verlangen, dass das Tabellendesign 5 Millionen Datenvolumen nicht überschreiten darf. Ich habe den von der Tabelle belegten Speicherplatz überprüft, der 120 GB beträgt. Es handelt sich zweifellos um eine große Tabelle, und dies wurde bei der ersten Entwicklung nicht berücksichtigt. Kurz gesagt: Solange es online funktioniert, wen kümmert es?

MySQL-Spezifikationen

1. Eine einzelne Tabelle sollte nicht mehr als 5 Millionen Datensätze enthalten. Gleichzeitig sollte der von einer einzelnen Tabelle belegte Speicherplatz 50 GB nicht überschreiten. Andernfalls sollten Sie eine Optimierung und Tabellenpartitionierung in Betracht ziehen.

2. Deaktivieren Sie den Textfeldtyp. Wenn Sie ihn verwenden müssen, müssen Sie auch eine separate Tabelle entwerfen.

3. Gründe für die Deaktivierung des Textfeldtyps

1. Die Leistung ist sehr schlecht. Beim Ausführen von Vorgängen wie Sortieren können Sie keine temporären Tabellen im Speicher verwenden, sondern müssen temporäre Tabellen auf der Festplatte verwenden.

2. TEXT- oder BLOB-Typen können nur Präfixindizes verwenden und MySQL hat Beschränkungen hinsichtlich der Länge der Indexfelder.

4. Lösung

Legen Sie Standards fest und setzen Sie diese strikt durch (die Umsetzung ist schwierig). Es ist unmöglich, dass ein oder zwei DBAs Dutzende oder Hunderte von Geschäftssystemen, Zehntausende von Tabellen und Millionen von Feldern manuell überprüfen. Letztendlich kommt es auf ein intelligentes Auditsystem an!

Dies ist das Ende dieses Artikels mit der ausführlichen Erläuterung der Wissenspunkte zur Verwendung von TEXT/BLOB-Typen in MySQL. Weitere Informationen zur Verwendung von TEXT/BLOB-Typen in MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Der Unterschied zwischen TEXT- und BLOB-Feldtypen in MySQL
  • Detaillierte Erklärung der Blob- und Textdatentypen in MySQL

<<:  Die WeChat-Applet-Entwicklung realisiert die Aktivitätsleitfunktion für Popup-Fenster auf der Startseite

>>:  Installations- und Konfigurationsmethode von Zabbix Agent auf der Linux-Plattform

Artikel empfehlen

Aktivieren oder Deaktivieren des GTID-Modus in MySQL online

Inhaltsverzeichnis Grundlegende Übersicht GTID on...

Spezifische Verwendung des MySQL-Parameters binlog_ignore_db

Vorwort: Nach dem Studium des vorherigen Artikels...

Detaillierte Erklärung zum Anpassen des Linux-Befehlsverlaufs

Der Befehl „Bash History“ im Linux-System hilft d...

Spezifische Verwendung von Linux which Befehl

Oft möchten wir in Linux eine Datei finden, wisse...

Die Verwendung von Ankerpunkten in HTML_PowerNode Java Academy

Lassen Sie uns nun mehrere Situationen zur Steuer...

Nach dem Docker-Lauf ist der Status immer „Beendet“

füge -it hinzu docker run -it -name test -d nginx...

Interaktion im Webdesign: Eine kurze Diskussion über Paging-Probleme

Funktion: Zur vorherigen Seite oder zur nächsten ...

Vue implementiert Drag & Drop oder Klicken zum Hochladen von Bildern

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

Tic-Tac-Toe-Spiel in reinem CSS3 implementiert

Wirkung der Operation: html <div Klasse="...