1. Indextyp 1. B+ BaumWarum B+-Baum statt B-Baum? Sehen wir uns zunächst die strukturellen Unterschiede zwischen B-Baum und B+-Baum an. B-Baum-Struktur: B+ Baum: Sie können sehen:
2. Was sind die Unterschiede zwischen den B+-Baumindeximplementierungen von MyISAM und InnoDB (Clusterindex und Nicht-Clusterindex)?Zuerst müssen Sie gruppierte und nicht gruppierte Indizes verstehen. Gruppierter Index: In einem gruppierten Index enthalten die Blattseiten alle Daten für die Zeile und die Knotenseiten die Indexspalten. InnoDB clustert Daten nach Primärschlüssel. Wenn kein Primärschlüssel definiert ist, wird stattdessen eine eindeutige, nicht leere Indexspalte ausgewählt. Wenn kein solcher Index vorhanden ist, definiert InnoDB implizit einen Primärschlüssel als Clusterindex. Datenverteilung des Clustered-Index: In einem Clustered-Index gibt es neben dem Primärschlüsselindex auch einen Sekundärindex. Die Blattknoten im sekundären Index speichern keine „Zeilenzeiger“, sondern Primärschlüsselwerte, die als „Zeiger“ auf die Zeilen verwendet werden. Dies bedeutet, dass die Speicher-Engine beim Suchen nach einer Zeile über einen Sekundärindex den Blattknoten des Sekundärindex finden muss, um den entsprechenden Primärschlüsselwert zu erhalten, und dann basierend auf diesem Wert nach der entsprechenden Zeile im Clustered-Index suchen muss, was auch als "zurück zur Tabelle" bezeichnet wird. Natürlich können Sie Tabellenwiederholungen vermeiden, indem Sie abdeckende Indizes oder adaptive Indizes von
3. Nicht gruppierter IndexDer Primärschlüsselindex und der Sekundärindex eines nicht gruppierten Indexes unterscheiden sich in ihrer Struktur nicht; beide speichern „Zeilenzeiger“, die auf die physische Adresse der Daten auf den Blattknoten zeigen. Primärschlüsselindex und Sekundärindex des gruppierten Indexes: Primärschlüsselindex und Sekundärindex des nicht gruppierten Indexes: 4. Vor- und Nachteile des Clustered-IndexVorteil: Speichern Sie zusammengehörige Daten zusammen (gruppieren Sie beispielsweise alle E-Mails des Benutzers nach Benutzer-ID), da sonst jeder Datenlesevorgang zu einem Festplatten-E/A führen kann. Mangel: Wenn alle Daten im Speicher abgelegt werden können, ist ein sequentieller Zugriff nicht mehr erforderlich und gruppierte Indizes haben keinen Vorteil. Die Einfügegeschwindigkeit hängt von der Einfügereihenfolge ab. Zufälliges Einfügen kann zu Seitenaufteilungen und Löchern führen. Verwenden Sie OPTIMIZE TABLE, um die Tabelle neu zu erstellen. Jedes Einfügen, Aktualisieren und Löschen erfordert die Wartung von Indexänderungen, was sehr teuer ist. Sekundärindizes können größer als erwartet sein, da die Primärschlüsselspalten der referenzierten Zeilen im Knoten enthalten sind. 5. Hash-IndexHash-Indizes werden auf Basis von Hash-Tabellen implementiert. Nur Abfragen, die mit allen Spalten des Indexes exakt übereinstimmen, sind gültig. Das bedeutet, dass Hash-Indizes für Abfragen mit gleichen Werten geeignet sind.
In MySQL unterstützt nur die
6. Adaptiver Hash-Index Wenn Dies ist das Ende dieses Artikels über die Details der zugrunde liegenden Datenstruktur von MySQL-Indizes. Weitere Informationen zur zugrunde liegenden Datenstruktur von MySQL-Indizes finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Lösung zur Verwendung der Baidu-Freigabe auf der HTTPS-Seite
MySQL-Fehler: Fehlercode: 1293 Falsche Tabellende...
1. Nutzung auf höchster Ebene 1. Installieren Sie...
Vorwort In MySQL ist die Abfrage mehrerer Tabelle...
Vor kurzem habe ich an einem Großbildschirmprojek...
Code zur Änderung des CSS-Bildlaufleistenstils .s...
In diesem Artikel finden Sie eine ausführliche An...
Vorwort: MySQL ist ein relationales Datenbankverw...
Im Folgenden habe ich einige grundlegende SQL-Ken...
Inhaltsverzeichnis 1. Herunterladen 2. Installati...
Überblick Ein Index ist eine vom DBMS basierend a...
Vielleicht habe ich angefangen, falsch zu denken,...
Inhaltsverzeichnis 1. Übersicht 2. Digitale Aufzä...
Inhaltsverzeichnis 1. Warum NanoID UUID ersetzt 2...
Hintergrund Um die Docker-Containerisierung währe...
In CentOS ist standardmäßig MariaDB installiert, ...