Detaillierte Erklärung und Prinzipanalyse des MySQL-Index

Detaillierte Verwendung des MySQL-Index, Prinzipanalyse

[Vorankündigung]
Artikel nach Autor: Zhang Yaofeng in Verbindung mit ihrer eigenen Erfahrung bei der Herstellung von Fertig, bildet leicht Artikel zu verstehen
! Schreiben ist nicht einfach, reproduzierte bitte angeben, danke
Big Data - Code - Fall - Adresse: https://github.com/Mydreamandreality / sparkResearch


In der innodb-Engine gibt es insgesamt vier Indextypen, zwei Indexmethoden. Ich spreche hauptsächlich über die Wahl des Index in der Produktion, die Wahl der Datenstruktur

Index-Trefferquote, SQL-Ausführungsplan kann meinen vorherigen Artikel anzeigen

Indextyp:

  • 1. Normaler Index
  • 2. Eindeutiger Index
  • 3. Volltextindex
  • 4. SPATIAL räumlicher Index

Indexmethode:

  • 1. Die btree-Indexmethode
  • 2. Hash-Index-Methode

Detaillierte Indextypen:

  • 1. Erstens ist der Indextyp Normal der am häufigsten verwendete Indextyp und auch der grundlegendste Indextyp. Er unterliegt keinen Einschränkungen. Sie können Normal für ein Feld festlegen oder eine gemeinsame Indizierung durchführen. Bei Abfragen mit einer Bedingung, Abfragen mit mehreren Bedingungen oder anderen Linksverknüpfungsvorgängen verwendet der MySQL-Optimierer diesen Indextyp automatisch, um die Abfragegeschwindigkeit zu optimieren. Wenn wir wissen möchten, ob dieser Index wirksam ist oder nicht, können wir den explainBefehl verwenden Lassen Sie uns den SQL-Ausführungsplan überprüfen. Eine ausführliche Erläuterung des SQL-Ausführungsplans finden Sie in meinem vorherigen Blog.
  • 2. Einzigartig, wie der Name schon sagt, ist ein eindeutiger Index. Der eindeutige Index dient zum Hinzufügen einer eindeutigen Einschränkung auf der Grundlage des normalen Index. Ich habe ihn unter Daten auf Millionenebene getestet, und es gibt keinen großen Leistungsunterschied im Vergleich zu Normal. Das Anwendungsszenario dieses Index ist ebenfalls recht gut. In vielen Fällen haben Ihre Daten beispielsweise ein Feld, das indiziert werden muss, und der Wert dieses Felds muss eindeutig sein. Daher ist die Verwendung eines eindeutigen Index die bessere Wahl
  • 3. Volltext-Volltextindizierung ist sinnvoll. Im Allgemeinen benötigen wir alle Elasticsearch. Die Volltextindizierung in MySQL wird nicht häufig verwendet, aber die Grundeinheit der Volltextindizierung ist definitiv ein Wort. Der Tokenizer von MySQL ist dies nicht Wissen Sie, ob es so leistungsfähig ist wie es. Kurz gesagt, das Anwendungsszenario dieses Index ist der große Text, der in einem bestimmten Feld gespeichert ist. Sie können den Volltextindex verwenden
  • 4. SPATIAL Spatial Index, um ehrlich zu sein, wurde dieser nie verwendet, da dieser Index nicht in der Innodb-Engine verwendet werden kann. Er muss für das Feld Geodatentyp in der MYISAM-Engine verwendet werden. In MYSQL gibt es 4 Geodatentypen GEOMETRIE, PUNKT, LINESTRING, POLYGON, MYSQL verwenden SPATIAL-Schlüsselwörter zum Erweitern, sodass damit ein regulärer Indextyp der Syntax zum Erstellen eines räumlichen Index erstellt werden kann. Um eine räumliche Indexspalte zu erstellen, muss sie als NICHT NULL deklariert werden

Detaillierte Indexmethode:

Indexmethode Diese MySQL unterstützt zwei

  • 1. BTREE ist ein B + -Baum, der am häufigsten verwendet werden sollte
  • 2. Hash ist die Datenstruktur von K und V. Diese Art der Bereichssuche und Knotensuche wird nicht sehr gut unterstützt.

Was ist der Index?

Haben Sie jemals darüber nachgedacht, was der Index ist? Warum die Abfrageeffizienz nach angemessenem Hinzufügen des Index so hoch wird

Um es ganz klar auszudrücken, der Index ist eine Datenstruktur, und seine Aufgabe besteht darin, unsere Abfrage zu optimieren, genau wie der vom B + -Baum in MySQL implementierte Index. Der B + -Baum ist eine Datenstruktur. Wenn Sie keinen Index hinzufügen, fragen Sie Daten ab. Sie müssen die gesamte Tabelle scannen und dann einen vollständigen Tabellenscan durchführen, bevor Sie die Daten abgleichen. Handelt es sich um eine große Datenmenge? Der Index entspricht der Sequenztabelle des Wörterbuchs. Wenn Sie bestimmte Daten überprüfen möchten, finden Sie k direkt in der Sequenztabelle. Die Effizienzverbesserung ist sehr hoch.

Warum empfehlen wir die Verwendung der B + -Baumdatenstruktur, des Hash-Index und des B-Baums? Ist es nicht möglich, den Binärbaum vollständig auszugleichen?

Lassen Sie uns zunächst über Hash-Indizes sprechen. Diese Art der Indexsuchgeschwindigkeit ist schnell, aber unangenehm, da sie keine Bereichssuche unterstützt, z. B. größer oder gleich. Sie denken, wie unterstützt kv diese Art von Abfrage, sodass sie in allgemeinen Fällen selten verwendet wird Hash-Index

Dann sehen Sie sich in der Tat nur den Namen an. Es gibt einen groben Unterschied zwischen b-Baum und b + Baum, nicht nur mehrere +, tatsächlich sind b + Baum Nicht-Blattknoten in Blattknoten redundant, und es gibt Zeiger zwischen b + Baum Blattknoten. Das Finden, was größer oder kleiner als besonders schnell ist, ist eine Lösung für Raum und Zeit

Der ausgeglichene Binärbaum unterstützt die Bereichssuche. Warum nicht verwenden, da b + number (b number kann auch sein) ein Knoten mehrere Elemente speichern kann. Was verursacht dies? Denken Sie abstrakt darüber nach, wir haben zwei Bäume. Da der b + -Baum mehrere Elemente speichert, ist dieser Baum niedriger als der Binärbaum, daher sollte die Elementsuche schneller sein und bestimmte Io-Operationen reduzieren

. . . Warten Sie, warten Sie, der Index kann zu viele Punkte sagen, wissen Sie nur ein wenig, gehen Sie tiefer, wenn Sie frei sind

Hinweis zur Indexverwendung

  • 1. Der Index hat offensichtliche Auswirkungen, wenn die Datenmenge groß ist. Wenn die Datenmenge im System nicht groß ist, muss kein Index erstellt werden, wodurch Speicherplatz verschwendet wird
  • 2. Obwohl der Index die Abfragegeschwindigkeit erhöht, verringert er die Aktualisierungsgeschwindigkeit
  • 3. Ich habe einige gefährliche Ideen gehört. . Ich weiß sowieso nicht, ob der Index effektiv ist. Ich habe allen Feldern Indizes hinzugefügt. . . Dies ist zu beängstigend. Die Indizierung beansprucht Speicherplatz in der Indexdatei. Sie können den Index normal erstellen. Es ist in Ordnung, Sie können den Index nicht überbeanspruchen
  • 4. Wählen Sie den entsprechenden Index für Ihr Geschäftsszenario
Veröffentlicht 59 Originalartikel · Gefällt mir 364 · Besucher 100.000+

Ich denke du magst

Origin blog.csdn.net/youbitch1/article/details/105431071
Empfohlen
Rangfolge