Eine kurze Diskussion über verschiedene Situationen, in denen das Hinzufügen von Indizes zu MySQL nicht wirksam wird

Eine kurze Diskussion über verschiedene Situationen, in denen das Hinzufügen von Indizes zu MySQL nicht wirksam wird

Das Hinzufügen von Indizes kann die Abfrageeffizienz verbessern.

Das Hinzufügen eines Index bedeutet das Hinzufügen einer Indexdatei, in der die Adresse der Daten gespeichert ist, ähnlich dem Verzeichnis unseres Dokuments. Während des Suchvorgangs müssen Sie nicht im Inhalt des Buches suchen, sondern können direkt nach der dem Verzeichnis entsprechenden Seitenzahl suchen. Die Indizes werden adressbasiert durchsucht.
Erstellen Sie einen Index. Der Index verwendet viele Datenstrukturen. Gängige sind B-Baum, Hash usw. Der von MySQL verwendete Standarddatenbankindex ist innerDB und die Indexstruktur von innerDB ist B-Baum.
Aber in welchen Situationen führt das Hinzufügen von Indizes bei der Verwendung nicht zu den erwarteten Ergebnissen? Hier sind einige häufige Situationen:
Gehen Sie davon aus, dass Name, Alter und Adresse indiziert wurden. Die Indexnamen sind Indexname, Indexalter und Indexadresse.

Verwenden Sie „explain“, um den SQL-Ausführungsplan anzuzeigen

Ausführungsplantyp

Gibt an, wie MySQL die erforderliche Zeile in der Tabelle findet. Dies wird auch als „Zugriffstyp“ bezeichnet. Gängige Typen sind die folgenden:

ALLE, Index, Bereich, Ref, eq_ref, const, System, NULL
ALL: Vollständiger Tabellenscan, MySQL durchsucht die gesamte Tabelle nach übereinstimmenden Zeilen
index: Vollständiger Index-Scan. Der Unterschied zwischen index und ALL besteht darin, dass der Indextyp nur den Indexbaum durchläuft.
Bereich: Indexbereichsscan, der Scan des Index beginnt an einem bestimmten Punkt und gibt die Zeilen zurück, die dem Wertebereich entsprechen. Der offensichtliche Indexbereichsscan ist eine Abfrage mit einer Between- oder Where-Klausel mit <, >. Wenn MySQL einen Index verwendet, um einen Wertebereich zu finden, wie etwa IN()- und OR-Listen, wird auch ein Bereichsscan angezeigt. Natürlich gibt es Unterschiede in der Leistung.
ref: Verwenden Sie einen nicht eindeutigen Indexscan oder einen Präfixscan eines eindeutigen Indexes, um Zeilen zurückzugeben, die einem einzelnen Wert entsprechen
eq_ref: Ähnlich wie ref, der Unterschied besteht darin, dass der verwendete Index ein eindeutiger Index ist. Für jeden Indexschlüsselwert gibt es nur einen übereinstimmenden Datensatz in der Tabelle. Einfach ausgedrückt wird der Primärschlüssel oder eindeutige Schlüssel als Verbindungsbedingung bei Verknüpfungen mehrerer Tabellen verwendet.

1. Verwenden Sie oder um mehrere Spalten abzufragen, type=all

Bildbeschreibung hier einfügen

2. Verwenden Sie eine Fuzzy-Abfrage, Typ=alle

Bildbeschreibung hier einfügen

3. Operationen an indizierten Feldern

Bildbeschreibung hier einfügen

4. Wenn der Spaltentyp eine Zeichenfolge ist, muss er in Anführungszeichen gesetzt werden. Das Namensfeld ist ein Zeichenfolgentyp

Ohne Anführungszeichen type=all

Bildbeschreibung hier einfügen

Es gibt Anführungszeichen tye=ref

Bildbeschreibung hier einfügen

Zunächst einmal verfügt MySQL über eine Typkonvertierungsregel, die „Zeichen in Zahlen“ umwandelt. Das obige SQL enthält Operationen:
erläutern Sie SELECT Name, Alter, Adresse FROM Benutzer, wobei cast(Name wie signiert) = 10;

5. Unterscheidung zwischen umgekehrten Abfragen

(nicht, nicht in, nicht wie, <>, !=, !>, !<) Indexeffekte verwenden

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Andere Situationen

1. Die zugehörigen Felder im gemeinsamen Index verwenden nicht denselben Zeichensatz.
2. Das erste Indexfeld wird bei der gemeinsamen Indexabfrage nicht verwendet, d. h. das Prinzip „ganz links“ wird nicht erfüllt.
3. Die Datenmenge selbst ist gering und MySQL bestimmt, ob ein Index benötigt wird.

Damit ist dieser Artikel zu mehreren Situationen abgeschlossen, in denen das Hinzufügen eines Index zu MySQL nicht funktioniert. Weitere Informationen zum nicht funktionierenden Hinzufügen eines Index zu MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Einführung in das MySql-Cache-Abfrageprinzip sowie in die Cache-Überwachung und Indexüberwachung
  • MySQL-Serie 9 MySQL-Abfrage-Cache und -Index
  • Regeln für die Verwendung gemeinsamer MySQL-Indizes
  • MySQL-Sortierung mittels Index-Scan
  • Was ist ein MySQL-Index? Fragen Sie, wenn Sie es nicht verstehen

<<:  Detaillierte Erläuterung der Vue-Lebenszyklusfunktionen

>>:  Besser aussehende benutzerdefinierte CSS-Stile (Titel h1 h2 h3)

Artikel empfehlen

So verwenden Sie den EXPLAIN-Befehl in SQL

Bei unserer täglichen Arbeit führen wir manchmal ...

MySQL Serie 4 SQL-Syntax

Inhaltsverzeichnis Tutorial-Reihe 1. Einführung u...

Detaillierte Erläuterung der grundlegenden Docker-Netzwerkkonfiguration

Externer Zugriff Ports nach dem Zufallsprinzip zu...

Ideen und Codes zur Implementierung des Wasserfall-Flow-Layouts im UniApp-Applet

1. Einleitung Gilt es als Aufwärmen alter Themen,...

Drei Möglichkeiten zum Teilen der Komponentenlogik in React

Ohne weitere Umschweife sind dies diese drei Meth...

HTML+CSS zum Erstellen eines geschichteten Pyramidenbeispiels

Dieser Artikel stellt hauptsächlich das Beispiel ...

So migrieren Sie lokales MySQL in eine Serverdatenbank

Wir können den scp-Befehl von Linux (scp kann unt...

Zusammenfassung der Verwendung von Linux-SFTP-Befehlen

sftp ist die Abkürzung für Secure File Transfer P...

Verstehen Sie kurz die MySQL-Datenbankoptimierungsphase

Einführung Haben Sie schon einmal eine Situation ...

Detaillierte Erklärung zur Verwendung von JavaScript-Funktionen

Inhaltsverzeichnis 1. Deklarieren Sie eine Funkti...

So erkennen Sie mit Apache Tika, ob eine Datei beschädigt ist

Apache Tika ist eine Bibliothek zur Dateityperken...