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

Analyse des Implementierungsprozesses für die Tomcat maxPostSize-Einstellung

1. Warum maxPostSize festlegen? Der Tomcat-Contai...

Das Prinzip und die grundlegende Verwendung von Vue.use() in Vue

Inhaltsverzeichnis Vorwort 1. Verstehen mit Beisp...

Ein vorläufiges Verständnis der benutzerdefinierten CSS-Eigenschaften

Heute sind CSS-Präprozessoren der Standard für di...

HTML-Elemente (Tags) und ihre Verwendung

a : Gibt die Start- oder Zielposition eines Hyper...

Upgrade von MySQL 5.1 auf 5.5.36 in CentOS

Dieser Artikel beschreibt den Upgrade-Prozess von...

Verwendung von MySQL-Triggern

Trigger können dazu führen, dass vor oder nach de...

So verwenden Sie das JavaScript-Strategiemuster zum Validieren von Formularen

Inhaltsverzeichnis Überblick Formularvalidierung ...

mysql installer community 8.0.12.0 grafische anleitung zur installation

Dieses Tutorial beschreibt die Installation der M...