Vorwort Ich habe viele Blogs gelesen und von vielen Leuten, darunter auch dem DBA unseres Unternehmens, gehört, dass, wenn in MySql eine Spalte null enthält, der Index, der diese Spalte enthält, ungültig ist. Ich habe „High Performance MySQL 2nd Edition“ und „MySQL Technology Insider – InnoDB Storage Engine 2nd Edition“ durchgeblättert, konnte aber keine Einführung hierzu finden. Aber nachdem ich es lokal ausprobiert hatte, stellte ich fest, dass die Nullspalte den Index verwenden kann, egal ob es sich um einen Einzelspaltenindex oder einen gemeinsamen Index handelt, aber sie ist auf „ist null“ beschränkt. „Ist nicht null“ verwendet den Index nicht. Später fand ich in der offiziellen Dokumentation die Beschreibung, dass der Index tatsächlich verwendet werden kann, wenn eine Spalte null enthält. Die Adresse lautet: https://dev.mysql.com/doc/refman/5.7/en/is-null-optimization.html. Es funktioniert sowohl in MySQL 5.6 als auch in 5.7 und die Speicher-Engine ist InnoDB. Die Daten lauten wie folgt: 1. Einspaltiger Index Erstellen Sie einen einzelnen Spaltenindex für die Spalte „Name“: Fragen Sie die Zeilen ab, in denen der Name null ist: Fragen Sie die Zeile ab, deren Name „test0“ oder null ist: Sie können feststellen, dass Indizes verwendet werden können. 2. Gemeinsamer Index Fügen Sie einen gemeinsamen Index für Alter und Name hinzu: Fragen Sie die Zeilen ab, in denen das Alter 14 und der Name null ist: Sie können feststellen, dass der Index auch verwendet wird. 3. Sonstiges Obwohl MySQL Indizes für Spalten mit Nullen verwenden kann, bedeutet dies nicht, dass Nullen mit anderen Daten im Index identisch sind. Es wird nicht empfohlen, Nullen in Spalten zuzulassen. Am besten beschränken Sie sich auf „nicht null“ und legen einen Standardwert fest, beispielsweise 0 und „leere Zeichenfolge“. Wenn es sich um einen Datums-/Uhrzeittyp handelt, können Sie ihn auf einen speziellen Wert wie „1970-01-01 00:00:00“ festlegen. Für MySQL ist Null ein spezieller Wert. Konzeptionell bedeutet NULL „ein fehlender unbekannter Wert“ und wird etwas anders als andere Werte behandelt. Beispiele: Operatoren wie =, <, > können nicht verwendet werden, das Ergebnis von Rechenoperationen mit Null ist Null, Nullzeilen werden bei der Zählung nicht berücksichtigt, Null erfordert mehr Speicherplatz als eine leere Zeichenfolge usw. 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. Das könnte Sie auch interessieren:
|
<<: Implementierungscode zur Installation von vsftpd in Ubuntu 18.04
>>: Beispiele und Vergleich von 3 Methoden zur Deduplizierung von JS-Objekt-Arrays
1. Docker zieht das Image Docker Pull MySQL (stan...
Im Laufe der Arbeit werden Sie auf viele Fälle im...
Inhaltsverzeichnis Hintergrund Warum Fehlerbehand...
Die Standardvorlagenmethode ähnelt vue2 und verwe...
Da ich auf einen neuen Computer gewechselt bin, m...
yum-Befehl Yum (vollständiger Name Yellow Dog Upd...
Angenommen, es gibt zwei Linux-Server A und B, un...
Neue Funktion von IE8: Web Slices (Web Slices) Mi...
Vorwort Hinweis: Die Testdatenbankversion ist MyS...
Docker zugrunde liegende Technologie: Die beiden ...
Während der normalen Projektentwicklung, wenn die...
Im Allgemeinen bietet MySQL standardmäßig eine Vi...
Neue Funktionen in MySQL 8: Meine persönliche Mei...
Verwenden Sie HTML, um eine dynamische Web-Uhr zu...
Die JavaScript-Methode hasOwnProperty() ist die P...