Heim  >  Artikel  >  Datenbank  >  Was sind die Indextypen und Eigenschaften von MySQL?

Was sind die Indextypen und Eigenschaften von MySQL?

王林
王林nach vorne
2023-05-27 15:22:061769Durchsuche

Hinweis: Das Hauptaugenmerk liegt hier auf der B+Tree-Indexdatenstruktur der InnoDB-Speicher-Engine

Im Folgenden werden hauptsächlich die fünf Indextypen und ihre jeweiligen Eigenschaften und Unterschiede vorgestellt.

1.B-Tree-Index

Da die Speicher-Engine keinen vollständigen Tabellenscan durchführt, um die Daten zu erhalten, Es ruft die Daten direkt ab. Die Suche beginnt am Stammknoten des Index, wodurch der Zugriff auf Daten beschleunigt wird.

Vorteile:

B-Tree-Indizes werden sequentiell organisiert und gespeichert, was sich sehr gut für die Suche nach Bereichsdaten eignet. Geeignet für vollständige Schlüsselwerte , Schlüssel Wertebereich oder Schlüsselpräfixsuche (Suche nach dem Präfix ganz links)

Einschränkungen:

Für gemeinsame Indizes, wenn dies nicht der Fall ist von ganz links Wenn Sie mit der Suche in einer Spalte beginnen, können Sie den Index nicht verwenden. ist B-Varianten des Baumindex, die aktuellen Mainstream-Speicher-Engines sind kein reiner B-Tree, sondern seine Varianten B+Tree oder T-Tree usw.

Der Unterschied zwischen B- Baum:

Der Hauptunterschied zwischen B+Tree und B-Tree besteht darin, dass die internen Knoten von B+Tree keine Daten, sondern nur Schlüssel speichern und die Blattknoten keine Zeiger speichern

3.Hash-Index

Basierend auf der Hash-Tabellenimplementierung ist nur die Speicherspeicher-Engine explizit

Vorteile: ⽀ Der Hash-Index

eignet sich für äquivalente Abfragen wie =, in(), <=>

Nachteile: #🎜 🎜#

wird nicht unterstützt. Bereichsabfrage

Da sie nicht in der Reihenfolge des Indexwerts gespeichert wird, kann sie den Index nicht verwenden, um die Sortierung wie den B+Tree-Index abzuschließen Der Index ist beim Abfragen äquivalenter Werte sehr schnell, da der Hash-Index immer den gesamten Inhalt aller Spalten indiziert, sodass übereinstimmende Suchvorgänge für Teilindexspalten nicht unterstützt werden.

Wenn eine große Anzahl doppelter Schlüsselwerte vorhanden ist, ist die Effizienz des Hash-Index aufgrund des Hash-Kollisionsproblems sehr gering. Programmierer können einen adaptiven Hash-Index basierend auf dem B+Tree-Index erstellen .

4. Volltextindex

Sowohl MyISAM als auch InnoDB unterstützen vollständige Indizes mit drei Modi: natürlicher Sprachmodus und boolescher Modus Abfrageerweiterungsmodus

5.R-Tree-Index

MyISAM⽀ unterstützt den R-Tree-Index, der für den vollständigen Index grundsätzlich irrelevant ist # 🎜🎜#

Das obige ist der detaillierte Inhalt vonWas sind die Indextypen und Eigenschaften von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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