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
Inhaltsverzeichnis Ein einfaches Komponentenbeisp...
Code und Beispiele direkt posten #Schreiben Sie K...
Wir alle wissen, dass Daten unbezahlbar sind. Wen...
Die virtuelle Maschine, die ich von einer bestimm...
Die Entsprechung zwischen der Tensorflow-Version ...
In diesem Artikelbeispiel wird der spezifische JS...
Details zu den Parametern der Version FFMPEG 3.4....
Inhaltsverzeichnis Einführung in gespeicherte Pro...
Kubernetes unterstützt drei Arten der Authentifiz...
Kommen wir ohne weitere Umschweife direkt zum Cod...
Heute Morgen hatte ich vor, mit Wampserver eine P...
In Front-End-Projekten ist das Hochladen von Anhä...
Vorwort Einige Leute haben mich in diesen Tagen u...
Vorwort Das Konfigurationsdateisystem der CentOS-...
1. Was ist Refs wird in Computern als Resilient F...