Analyse des Prinzips der MySQL-Indexlängenbeschränkung

Analyse des Prinzips der MySQL-Indexlängenbeschränkung

Dieser Artikel stellt hauptsächlich die Analyse des Prinzips der MySQL-Indexlängenbeschränkung vor. Der Artikel stellt es anhand von Beispielcode sehr detailliert vor, was einen gewissen Referenzlernwert für jedermanns Studium oder Arbeit hat. Freunde, die es brauchen, können darauf zurückgreifen.

Index

TextField unterstützt keine Indizierung.

MySQL hat eine Beschränkung für die Länge von Indexfeldern

Die Länge jeder Indexspalte der InnoDB-Engine ist auf 767 Byte begrenzt und die Gesamtlänge aller Indexspalten kann 3072 Byte nicht überschreiten.

Die Länge jeder Indexspalte der MyISAM-Engine ist auf 1000 Byte begrenzt und die Gesamtlänge aller Indexspalten kann nicht größer als 1000 Byte sein.

Die maximale Länge von varchar bezieht sich auf die Zeichenlänge. Wenn der Datenbankzeichensatz UTF-8 ist, belegt ein Zeichen 3 Bytes. Daher darf die Länge eines von der InnoDB-Engine erstellten einspaltigen Indexes beim UTF-8-Zeichensatz 255 Zeichen nicht überschreiten.

Unterschiedliche MySQL-Versionen führen zu unterschiedlichen Indexlängenbeschränkungen

In MySQL Version 5.5 wurde innodb_large_prefix eingeführt, um große Präfixindizes aus Kompatibilitätsgründen mit früheren Versionen von InnoDB zu deaktivieren, die keine großen Indexschlüsselpräfixe unterstützen.

Durch Aktivieren von innodb_large_prefix kann die Länge eines einzelnen Indexes auf 3072 Bytes begrenzt werden (die Gesamtlängenbeschränkung eines kombinierten Indexes beträgt jedoch weiterhin 3072 Bytes). Wenn diese Option deaktiviert ist, beträgt die Längenbeschränkung eines einzelnen Indexes 767 Bytes.

In MySQL 5.5 und MySQL 5.6 ist innodb_large_prefix standardmäßig deaktiviert und in MySQL 5.7 und höher standardmäßig aktiviert

In MySQL 8.0 wurde innodb_large_prefix entfernt

Aus diesem Grund kann ich auf meinem Computer (MySQL 8.0) einen Index mit einer Länge von 1024 Zeichen (3072 Bytes im UTF-8-Zeichensatz) erstellen, aber nicht auf dem Server (MySQL 5.5).

Skript zum Testen der Indexlängenbeschränkung:

Test verwenden;
Tabelle löschen, falls vorhanden, test_index_len;
Tabelle erstellen 
test_index_len(long_char varchar(1025) Primärschlüssel) ENGINE=InnoDB charset=utf8;
Test verwenden;
Tabelle löschen, falls vorhanden, test_index_len;
Tabelle erstellen 
test_index_len(
  long_char varchar(24),
  origin_str varchar(1000),
  Schlüssel Testindex (long_char, origin_str)) ENGINE=InnoDB Zeichensatz=utf8;

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Analyse der MySQL-Indexstruktur
  • Detaillierte Analyse von MySQL-Indextransaktionen
  • Detaillierte Analyse der MySQL-Indexdatenstruktur
  • Detaillierte Analyse der MySQL-Indizes
  • Analyse der Rolle von MySQL-Indizes

<<:  Vue implementiert den Operationscode zum Klicken auf eine Schaltfläche zum Herunterladen einer Datei (Backend-Java).

>>:  IIS7 IIS8 Reverse-Proxy-Regeln schreiben, installieren und konfigurieren

Artikel empfehlen

Detailliertes Tutorial zur Installation von SonarQube mit Docker

Inhaltsverzeichnis 1. Ziehen Sie das Bild 1.1 Zie...

Floaten und Floaten löschen in der Übersichtsseite

1. Float: Der Hauptzweck besteht darin, den Effek...

Beispielcode zur Implementierung des Regentropfen-Animationseffekts mit CSS

Glasfenster Was wir heute erreichen werden, ist d...

Beispielcode zum Zeichnen von Doppelpfeilen in gängigen CSS-Stilen

1. Mehrere Aufrufe eines einzelnen Pfeils Sobald ...

Docker-Installation Tomcat Dubbo-Admin-Instanz-Kenntnisse

1. Laden Sie das Tomcat-Image herunter Docker zie...

Eine kurze Diskussion über die binäre Familie von JS

Inhaltsverzeichnis Überblick Klecks Blob in Aktio...

Detaillierte Schritte zur Installation von Docker 1.8 auf CentOS 7

Docker unterstützt die Ausführung auf den folgend...

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11 unter Win10

In diesem Artikel finden Sie das Installations-Tu...

Abkürzungszeichen und Akronymzeichen

Die Tags <abbr> und <acronym> stellen ...

Implementierung von Portalen und Fehlergrenzbehandlung in React

Inhaltsverzeichnis Portale Fehlergrenzenbehandlun...

React-Beispiel, das den Fortschritt des Datei-Uploads zeigt

Inhaltsverzeichnis React-Demo zur Anzeige des Dat...