Heim >Datenbank >MySQL-Tutorial >Welche Datenstruktur verwendet der MySQL-Index im Allgemeinen?
MyISAM ist die Standardspeicher-Engine für MySQL-Versionen vor 5.5. Ab 5.5 wird InnoDB zur Standard-Speicher-Engine für MySQL.
MyISAM verwendet B-Tree, um den Primärschlüsselindex, den eindeutigen Index und den Nicht-Primärschlüsselindex zu implementieren.
InnoDB verwendet die B-Tree-Datenstruktur für Nicht-Primärschlüsselindizes, während der Primärschlüsselindex B+Tree verwendet.
B-Baum
B-Baum (Mehrweg-Suchbaum, nicht binär) ist eine gängige Datenstruktur. Durch die Verwendung der B-Baumstruktur kann der Zwischenprozess beim Auffinden von Datensätzen erheblich reduziert und so der Zugriff beschleunigt werden. Laut Übersetzung wird B normalerweise als Abkürzung für Balance angesehen. Diese Datenstruktur wird im Allgemeinen für die Datenbankindizierung verwendet und weist eine hohe Gesamteffizienz auf.
Leistung(Empfohlenes Lernen: MySQL-Video-Tutorial)
B-tree verfügt über die folgenden Funktionen:
1 Die Sammlung ist im gesamten Baum verteilt.
2. Jedes Schlüsselwort erscheint nur in einem Knoten.
4. Die Suchleistung entspricht einer binären Suche im gesamten Schlüsselwortsatz; 🎜>Verschiedene Speicher-Engines verwenden möglicherweise unterschiedliche Datenstrukturen für die Speicherung.
Was ist B+Tree?
B+Tree ist eine Variante von B-Tree, die vom Dateisystem benötigt wird. Der Unterschied zwischen einem B+-Baum m-Ordnung und einem B-Baum m-Ordnung ist:B+ und B- (d. h. B) liegen daran, dass die Schlüsselwörter auf jedem Knoten unterschiedlich sind. Einer mehr, einer weniger. Die Knotenstruktur des B+-Baums ist dieselbe wie die des B-Baums. Der Unterschied besteht im Schlüsselwort jedes Knotens und in der Anzahl der untergeordneten Knoten, die er haben kann. Beispielsweise kann in einem B+-Baum m-Ordnung jeder Knoten höchstens m untergeordnete Knoten haben. Nicht-Wurzelknoten haben mindestens [m/2] untergeordnete Knoten, und die Anzahl der Schlüsselwörter ist um eins höher als beim B-Baum, der [m/2]~m beträgt.
Die Unterschiede zwischen diesen beiden Datenstrukturen für die Handhabung von Indizes:
1. Derselbe Schlüsselwert erscheint nicht mehrmals im B-Baum und kann in Blattknoten oder Nicht-Blattknoten vorkommen. Die Schlüssel des B+-Baums erscheinen definitiv in Blattknoten und können auch wiederholt in Nicht-Blattknoten erscheinen, um das Gleichgewicht des B+-Baums aufrechtzuerhalten.
2. Da die Schlüsselposition im B-Baum unsicher ist und in der gesamten Baumstruktur nur einmal vorkommt, kann dadurch zwar Speicherplatz gespart werden, die Komplexität von Einfüge- und Löschvorgängen wird jedoch erheblich erhöht. B+-Bäume sind im Vergleich ein besserer Kompromiss.
3. Die Abfrageeffizienz des B-Baums hängt von der Position des Schlüssels im Baum ab. Die maximale Zeitkomplexität ist dieselbe wie die des B+-Baums (wenn er sich am Blattknoten befindet), und die minimale Zeitkomplexität beträgt 1 (wenn). es befindet sich am Wurzelknoten). Die zeitliche Komplexität des B+-Baums ist für einen bestimmten erstellten Baum festgelegt.
Weitere technische Artikel zum Thema MySQL finden Sie in der Spalte
MySQL-Datenbank-Grafik-Tutorial, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonWelche Datenstruktur verwendet der MySQL-Index im Allgemeinen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!