Detaillierte Erklärung zur Verwendung verschiedener MySQL-Indizes

Detaillierte Erklärung zur Verwendung verschiedener MySQL-Indizes

1. Langsames Abfrageprotokoll

1.1 MySQL-Protokolltypen

Protokolle werden verwendet, um den Betrieb der Datenbank und verschiedene von Benutzern an der Datenbank durchgeführte Vorgänge aufzuzeichnen . Wenn ein Datenbankfehler auftritt, kann das Problem anhand der Protokolle analysiert und gelöst und so die Datenbank wiederhergestellt werden.

Bildbeschreibung hier einfügen

1.2 Grundlegendes zu langsamen Abfrageprotokollen

Das Slow-Query-Log dient der Aufzeichnung von Anweisungen in der MySQL-Datenbank, deren Antwortzeit den angegebenen Grenzwert überschreitet. Das Slow Query Log wird auch oft als Slow Log bezeichnet, da es nicht nur auf SELECT -Anweisungen abzielt, sondern auch auf Anweisungen wie INSERT、UPDATE、DELETE . Solange die Antwortzeit den festgelegten Schwellenwert überschreitet, wird sie im Slow Query Log aufgezeichnet.

Bildbeschreibung hier einfügen

1.3 So aktivieren Sie den Befehl „Slow Query Log“

Das Protokoll für langsame Abfragen kann vorübergehend über Befehle oder dauerhaft durch Ändern der Konfigurationsdatei festgelegt werden .

Überprüfen Sie, ob das Slow Query Log aktiviert ist

Variablen wie „slow%“ anzeigen;

Aktivieren Sie das Protokoll für langsame Abfragen vorübergehend

Setzen Sie slow_query_log='ON'.
setze long_query_time=1;

Speicherort der Protokolldatei für langsame Abfragen

Variablen wie „%datadir%“ anzeigen;

2. Abfrageanalysator - EXPLAIN

2.1 Einleitung zur Erklärung

Mit dem Befehl „Explain“ kann der Ausführungsplan der SQL-Anweisung angezeigt werden. Wenn „explain“ mit einer SQL-Anweisung verwendet wird, zeigt MySQL Informationen vom Optimierer zum Ausführungsplan der Anweisung an. Das heißt, MySQL erklärt, wie es die Anweisung verarbeiten wird, einschließlich Informationen darüber, wie die Tabellen verknüpft werden und in welcher Reihenfolge.

Was kann man erklären?

  • Analysieren Sie die Lesereihenfolge der Tabelle
  • Vorgangstyp des Datenlesevorgangs
  • Welche Indizes können verwendet werden
  • Welche Indizes werden eigentlich verwendet?
  • Verweise zwischen Tabellen
  • Wie viele Zeilen jeder Tabelle werden vom Optimierer abgefragt?

2.2 Verwendung von „explain“

Die Verwendung von Explain ist sehr einfach. Sie müssen lediglich den Befehl explain vor der SQL-Anweisung hinzufügen. Neben select -Anweisungen kann Explain auch insert、update和delete -Anweisungen analysieren.

Befehlserklärung:

Bildbeschreibung hier einfügen

3. Grundlegende Verwendung des Index

3.1 Was ist ein Index?

Ein Index ist eine spezielle Datenstruktur , ähnlich einem Buchkatalog, die die Abfrageeffizienz der Datenbank erheblich verbessern kann. Wenn beim Abfragen von Daten kein Index vorhanden ist, müssen alle Datensätze in der Tabelle gescannt werden, um Datensätze zu finden, die die Bedingungen erfüllen. Die Abfrageeffizienz dieses vollständigen Tabellenscans ist sehr gering .

Zusammenfassung : Die Verbesserung der Abfrageeffizienz ist wie das Sortieren von Müll. Legen Sie Dinge mit der gleichen Wirkung zusammen, damit sie leichter zu finden sind.

3.2 Gängige Indextypen

Ein Index ist eine Struktur, die die Werte einer oder mehrerer Spalten einer Datenbanktabelle sortiert. Über einen Index kann schnell auf bestimmte Datensätze einer Datenbanktabelle zugegriffen werden.

Der Index einer Datenbank ist wie das Inhaltsverzeichnis eines Buches und kann die Abfrage der Datenbank beschleunigen. Der Index ist der Schlüssel zur schnellen Suche. Wenn kein Index vorhanden ist, wird ein vollständiger Tabellenscan durchgeführt, um bestimmte Daten zu finden.

Bildbeschreibung hier einfügen

3.3 Verwendung des Index

Index erstellen

Erstellen eines normalen Indexes

CREATE INDEX indexName ON Tabellenname (Spaltenname (Länge));

Erstellen eines eindeutigen Indexes

EINDEUTIGEN INDEX ERSTELLEN indexName ON tableName(columnName(length));

Erstellen eines zusammengesetzten Indexes

CREATE INDEX indexName ON tableName(spaltenname1, spaltenname2, …);

Löschen eines Indexes

DROP INDEX [Indexname] ON Tabellenname;

Index anzeigen

INDEX AUS Tabellenname ANZEIGEN;

3.4 Praktische Erfahrungen mit der Indizierung

Bildbeschreibung hier einfügen

IV. Merkmale der führenden Spalten des zusammengesetzten Index

Funktion der führenden Spalte eines zusammengesetzten Index : Wenn Sie in MySQL einen zusammengesetzten Index (name, salary, dept) erstellen, entspricht dies der Erstellung von drei Indizes: (Name, Gehalt, Abteilung), (Name, Gehalt) und (Name). Daher sollten Sie beim Erstellen eines zusammengesetzten Index die Spalte, die am häufigsten als Abfragebedingung verwendet wird , in absteigender Reihenfolge nach links setzen.

Liste:

Index nicht verwendet

Wählen Sie * vom Mitarbeiter, wobei Gehalt = 8800 ist;
Wählen Sie * vom Mitarbeiter aus, wobei dept = "Abteilung A" ist.
Wählen Sie * vom Mitarbeiter aus, wobei Gehalt = 8800 und Abteilung = „Abteilung A“ ist.

Verwenden Sie den Index : mit vorangestelltem Namen

Wählen Sie * vom Mitarbeiter, wobei Name = "liufeng" ist;
Wählen Sie * vom Mitarbeiter, wobei Name = "liufeng" und Gehalt = 8800 ist.
Wählen Sie * vom Mitarbeiter aus, wobei Name = „liufeng“ und Gehalt = 8800 und Abteilung = „Abteilung A“ ist.

5. Abdeckungsindex

5.1 Was ist ein Deckungsindex?

Ein überdeckender Index wird auch als Indexabdeckung bezeichnet. Dies bedeutet, dass die select Datenspalten nur aus dem Index abgerufen werden können, ohne die Datenzeilen zu lesen. Das heißt, die Abfrageergebnisse können durch Scannen des Index abgerufen werden.

Einige Anmerkungen zum Abdecken von Indizes :

  1. Mit einem überdeckenden Index können Sie die erforderlichen Daten aus dem Index abrufen, ohne die Datentabelle zu scannen.
  2. Die Größe eines Indexes ist häufig viel kleiner als die einer Datentabelle, so dass das Lesen nur des Indexes sehr schnell geht und die Menge der Datenzugriffe erheblich reduziert.
  3. Der Abfrageoptimierer von MySQL ermittelt vor der Ausführung der Abfrage, ob ein Index vorhanden ist, der alle Abfragespalten abdecken kann.
  4. Nicht alle Indextypen können als überdeckende Indizes verwendet werden. Überdeckende Indizes müssen die Werte der indizierten Spalten speichern. Wie Hash-Index, räumlicher Index, vollständig
  5. Textindizes speichern nicht tatsächlich die Werte der indizierten Spalten.

5.2 So ermitteln Sie, ob ein Überdeckungsindex verwendet wird

Wenn eine Abfrage einen überdeckenden Index verwendet, wird in der Spalte „Extra“ des Abfrageanalysators EXPLAIN “Using index” angezeigt.

Bildbeschreibung hier einfügen

Damit ist dieser Artikel über die detaillierte Verwendung verschiedener MySQL-Indizes abgeschlossen. Weitere Informationen zur Verwendung von MySQL-Indizes finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Mein Blog: https://blog.csdn.net/weixin_46654114

Das könnte Sie auch interessieren:
  • mysql Index hinzufügen mysql wie man einen Index erstellt
  • Zusammenfassung der MySQL-Indextypen sowie Tipps und Vorsichtsmaßnahmen bei der Verwendung
  • So zeigen Sie Indizes in MySQL an, erstellen und löschen sie
  • MySQL Leistungsoptimierung Indexoptimierung
  • Vertieftes Verständnis basierend auf dem MySQL-Volltextindex
  • Vergleich zwischen Btree- und Hash-Index in MySQL
  • MySQL-Indexanalyse und -Optimierung
  • Die richtige Verwendung von MySQL-Indizes und detaillierte Erklärung der Indexprinzipien

<<:  Detaillierte Erklärung der HTML-Formularelemente (Teil 2)

>>:  js zum Implementieren von Operationen zum Hinzufügen und Löschen von Tabellen

Artikel empfehlen

Hinweise zur Zeitverwaltung des Linux-Kernel-Gerätetreibers

/****************** * Zeitverwaltung des Linux-Ke...

Lösen Sie das Problem beim Ausführen von Jupyter Notebook auf dem Server

Inhaltsverzeichnis Auf dem Server läuft Jupyter N...

So sichern Sie MySQL regelmäßig und laden es auf Qiniu hoch

In den meisten Anwendungsszenarien müssen wir wic...

JavaScript Factory Pattern erklärt

Inhaltsverzeichnis Einfache Fabrik Fabrikmethode ...

MySQL verwendet Binlog-Protokolle zur Implementierung der Datenwiederherstellung

MySQL Binlog ist ein sehr wichtiges Protokoll in ...

Detaillierte Beispiele für die Ausführung von Zabbix-Remotebefehlen

Inhaltsverzeichnis eins. Umfeld zwei. Vorsichtsma...

(MariaDB) Umfassende Erklärung der MySQL-Datentypen und Speichermechanismen

1.1 Übersicht über Datentypen Der Datentyp ist ei...

Installation und Verwendung von Vue

Inhaltsverzeichnis 1. Vue-Installation Methode 1:...

Navigationsdesign und Informationsarchitektur

<br />Wenn wir über Navigation sprechen, geh...

9 Tipps zur MySQL-Datenbankoptimierung

Inhaltsverzeichnis 1. Wählen Sie die am besten ge...