Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der zugrunde liegenden Implementierungsprinzipien von MySQL-Indizes

Detaillierte Erläuterung der zugrunde liegenden Implementierungsprinzipien von MySQL-Indizes

coldplay.xixi
coldplay.xixinach vorne
2021-04-27 09:31:532440Durchsuche

Detaillierte Erläuterung der zugrunde liegenden Implementierungsprinzipien von MySQL-Indizes

Das zugrunde liegende Implementierungsprinzip des MySQL-Index

    • 1. Vorwort
    • 2. Indextyp
      • 1, Hash-Index
      • 2, BTree-Index und B+Tree-Index
        • (1) BTree-Index
        • (2) B+Tree-Index
        • (3) B+Tree-Vergleich BTree-Vorteile:
      • 3. Volltextindex

Verwandte kostenlose Lernempfehlungen: MySQL-Video-Tutorial

1. Einführung

MySQL unterstützt viele Speicher-Engines, und verschiedene Speicher-Engines bieten unterschiedliche Unterstützung für Indizes. Daher unterstützt die MySQL-Datenbank mehrere Indextypen, wie z. B. den BTree-Index und den B+Tree-Index . , Hash-Index, Volltextindex usw.

2. Indextyp

Nur die Speicher-(Speicher-)Engine unterstützt den Hash-Index, um den Hash-Code des Werts zu berechnen Der Hash-Code wird dann am entsprechenden Ort gespeichert, an dem sich der Wert befindet. Da ein Hash-Algorithmus verwendet wird, kann er jedoch nur einem Hash-Code entsprechen Der Hash-Index unterstützt keine Bereichssuch- und Sortierfunktionen.

2. BTree-Index und B+Tree-Index

(1) BTree-Index

BTree-Index ist eine ausgewogene Suche für Bäume mit mehreren Gabeln, wenn die Tiefe des Baums 2d (d > 1) beträgt Höhe ist h, dann muss BTree die folgenden Bedingungen erfüllen:

① Die Höhe jedes Blattknotens muss gleich sein, gleich h

② Jeder Blattknoten besteht aus n-1 Schlüsseln und n Zeigern, wobei d <= n <= 2d , Schlüssel und Punkt sind voneinander beabstandet und beide Enden des Knotens müssen Schlüssel sein

③Die Blattknotenzeiger sind alle null
④Die Schlüssel von Nicht-Blattknoten sind alle [Schlüssel, Daten]-Tupel , wobei Schlüssel den Indexschlüssel darstellt, Daten sind die Daten der Zeile, in der sich der Schlüsselwert befindet.

(2) B+Tree-Index

B+Tree ist eine Variante von BTree. Wenn d der Grad des Baums und h die Höhe der Zahl ist, ist der Hauptunterschied zwischen B+Tree und BTree:

① Die Nicht-Ziffern in B+Tree-Blattknoten speichern keine Daten, sondern nur Schlüsselwerte

②Die Blattknoten von B+Tree haben keine Zeiger, alle Schlüsselwerte werden auf den Blattknoten angezeigt und die Schlüsselwerte werden gespeichert Der Schlüssel entspricht der physischen Adresse der Datendaten.

③B+ Jeder Nicht-Blattknoten des Baums besteht aus n Schlüsselwerten und n Zeigern.

(3) Vorteile von B+Tree im Vergleich zu BTree:

① Die Kosten für das Lesen und Schreiben der Festplatte sind geringer.

② Die Abfragegeschwindigkeit ist stabiler.


3. Volltextindex

Der Volltextindex (Volltext) kann nur für MyISAM und InnoDB verwendet werden. Bei größeren Datenmengen ist die Erstellung eines Volltextindex sehr zeitaufwendig. Beim Generieren eines Volltextindex wird eine Wortliste für den Text erstellt und der Index basiert bei der Indizierung auf dieser Wortliste.


Verwandte kostenlose Lernempfehlungen:

MySQL-Datenbank(Video)

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der zugrunde liegenden Implementierungsprinzipien von MySQL-Indizes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen