Heim  >  Artikel  >  Datenbank  >  Welche Datenstruktur verwendet der MySQL-Index im Allgemeinen?

Welche Datenstruktur verwendet der MySQL-Index im Allgemeinen?

(*-*)浩
(*-*)浩Original
2019-06-05 14:46:134839Durchsuche

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.

Welche Datenstruktur verwendet der MySQL-Index im Allgemeinen?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn