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:
|
>>: IIS7 IIS8 Reverse-Proxy-Regeln schreiben, installieren und konfigurieren
/****************** * Kernel-Debugging-Technologi...
Inhaltsverzeichnis 1. Ziehen Sie das Bild 1.1 Zie...
1. Float: Der Hauptzweck besteht darin, den Effek...
Die erste Methode: Fügen Sie dynamisch eine Klass...
Glasfenster Was wir heute erreichen werden, ist d...
1. Mehrere Aufrufe eines einzelnen Pfeils Sobald ...
1. Laden Sie das Tomcat-Image herunter Docker zie...
Ich habe kürzlich Bootstrap zum Entwickeln einer ...
Inhaltsverzeichnis Überblick Klecks Blob in Aktio...
Inhaltsverzeichnis Problembeschreibung Frontend-S...
Docker unterstützt die Ausführung auf den folgend...
In diesem Artikel finden Sie das Installations-Tu...
Die Tags <abbr> und <acronym> stellen ...
Inhaltsverzeichnis Portale Fehlergrenzenbehandlun...
Inhaltsverzeichnis React-Demo zur Anzeige des Dat...