MySQL-Indexprinzip und Analyse von Anwendungsbeispielen

MySQL-Indexprinzip und Analyse von Anwendungsbeispielen

Dieser Artikel veranschaulicht anhand von Beispielen die Prinzipien und die Verwendung von MySQL-Indizes. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

In diesem Artikel:

  • Was ist ein Index
  • Index erstellen
    • Normaler Index
    • Eindeutiger Index
    • Volltextindex
    • Einspaltiger Index
    • Mehrspaltige Indizes
  • Index anzeigen
  • Löschen eines Indexes

Veröffentlichungsdatum: 14.04.2018


Was ist ein Index:

  • Indizes können helfen, Daten schnell zu finden
  • Grundsätzlich müssen alle Indizes eindeutig sein (einige sind es nicht), sodass auch die Eindeutigkeit der Daten bis zu einem gewissen Grad eingeschränkt ist.
  • Ein Index wird für ein Datentabellenobjekt erstellt und besteht aus einem oder mehreren Feldern. Diese Felder bilden einen „Schlüssel“ und werden in einer Datenstruktur (B-Baum oder Hash-Tabelle) gespeichert. [Es kann entsprechend der Datenstruktur in B-Tree-Index (Innodb \ Myisam-Engine) und Hash-Index (Speicher-Engine) klassifiziert werden.]
  • Da Indizes verwendet werden, um die Datensuche zu beschleunigen, werden sie im Allgemeinen für Felder verwendet, die oft für die Suche benötigt werden (z. B. häufig verwendete Felder in „Where“).
  • Die von MySQL unterstützten Indextypen sind: gemeinsamer Index, eindeutiger Index, Volltextindex, einspaltiger Index, mehrspaltiger Index und räumlicher Index.

Auffüllen:

  • Der Unterschied zwischen Primärschlüssel und Index: Der Primärschlüssel ist auch eine Art Index, und der Primärschlüssel ist auch ein eindeutiger Index. Die Hauptfunktion des Index besteht jedoch darin, die Suchgeschwindigkeit zu verbessern, während die Hauptfunktion des Primärschlüssels darin besteht, die Eindeutigkeit des Datensatzes zu identifizieren (natürlich erleichtert dies auch die Suche).

Erstellen Sie einen Index:

Normaler Index: Index

  • Ein normaler Index ist ein Index ohne die Anforderungen „eindeutig“ oder „nicht leer“.
  • Grammatik:
    • Tabelle erstellen Tabellenname (Felddatentyp, Felddatentyp, ... Index|Schlüssel [Indexname] (Feld [Indexlänge] [aufsteigend|absteigend]));
      • index|key bedeutet, dass Sie das Schlüsselwort index oder das Schlüsselwort key verwenden können
      • Der Indexname ist optional. Wenn er nicht ausgefüllt wird, ist der Indexname der Feldname.
      • Das Feld ist ein indiziertes Feld; es können mehrere Felder vorhanden sein ( mehrspaltiger Index ).
      • Die Länge des Indexes, optional (einige Engines legen eine maximale Länge fest, die jedoch ohne eingehende Untersuchung selten anzutreffen ist und daher hier nicht beschrieben wird)
      • asc|desc ist optional und stellt die Sortierung der "Keywords" im Index dar
    • So fügen Sie einer vorhandenen Tabellenstruktur einen Index hinzu: Erstellen Sie den Index Indexname für den Tabellennamen (Feld [Indexlänge] [asc|desc]);
    • So fügen Sie einer vorhandenen Tabellenstruktur einen Index hinzu: „alter table table name add index|key index name (field [index length] [asc|desc]);“

Eindeutiger Index:

  • Ein eindeutiger Index erfordert, dass die Daten im Feld beim Erstellen eines Index eindeutig sind.
  • Syntax erstellen:
    • Tabelle erstellen Tabellenname (Felddatentyp, Felddatentyp, ... eindeutiger Index|Schlüssel [Indexname] (Feld [Indexlänge] [aufsteigend|absteigend]));
      • [Parameterinformationen beziehen sich auf den gemeinsamen Index]
    • So fügen Sie einer vorhandenen Tabellenstruktur einen Index hinzu: Erstellen Sie einen eindeutigen Indexnamen für den Tabellennamen (Feld [Indexlänge] [asc|desc]);
    • So fügen Sie einer vorhandenen Tabellenstruktur einen Index hinzu: „Alter Table Table Name“ (Tabellenname ändern), „Unqiue Index|Key Index Name“ (Feld [Indexlänge] [asc|desc]) hinzufügen;

Volltextindex: Volltextindex

  • Volltextindizes werden im Allgemeinen für Felder mit den Datentypen Char, Varchar und Text verwendet, um die Suche nach diesen längeren Daten zu erleichtern.
  • Die MyISAM-Speicher-Engine unterstützt die Volltextindizierung
  • Syntax erstellen:
    • Tabelle erstellen Tabellenname (Felddatentyp, Felddatentyp, ... Volltextindex|Schlüssel [Indexname] (Feld [Indexlänge] [aufsteigend|absteigend]));
      • [Parameterinformationen beziehen sich auf den gemeinsamen Index]
    • So fügen Sie einer vorhandenen Tabellenstruktur einen Index hinzu: Erstellen Sie einen Volltextindex, Indexname für den Tabellennamen (Feld [Indexlänge] [aufsteigend|absteigend]);
    • So fügen Sie einer vorhandenen Tabellenstruktur einen Index hinzu: „Alter Table Table Name“ (Tabellenname ändern), „Add Fulltext Index|Key Index Name“ (Feld [Indexlänge] [asc|desc]);

Einspaltiger Index:

  • Wenn nur ein indiziertes Feld vorhanden ist, handelt es sich um einen einspaltigen Index.

Mehrspaltiger Index:

  • Wenn mehrere indizierte Felder vorhanden sind, handelt es sich um einen mehrspaltigen Index.
  • Erstellungssyntax: Ändern Sie einfach das obige (Feld [Indexlänge] [asc|desc]) in (Feld1 [Indexlänge] [asc|desc],Feld2 [Indexlänge] [asc|desc],Feld1 [Indexlänge] [asc|desc]).

Index anzeigen:

  • Sie können den Index anzeigen, indem Sie die Tabellenstruktur anzeigen
    • image
  • Sie können den Index anzeigen, indem Sie die Anweisung zur Tabellenerstellung anzeigen.
    • image
  • Mit der EXPLAIN-Anweisung können Sie den Index anzeigen. EXPLAIN wird verwendet, um die Zeiteffizienz der Ausführung von MySQL-Anweisungen zu bestimmen.
    • Sie können also die SELECT-Anweisung „explain“ verwenden, wobei plus das indizierte Feld als Bedingung gilt.
    • Der mögliche Schlüssel im Ergebnis ist der Index, der verwendet werden kann, und der Index, den dieser Schlüssel tatsächlich verwendet.
    • Zum Beispiel:
      Erklären Sie „select * from user_info where username="lilei";“ 
      image

So löschen Sie einen Index:

  • Index-Indexnamen auf Tabellennamen löschen;
    • Zum Beispiel:
      Lösche den Index „myindex“ auf „user_info“.

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „Zusammenfassung der Kenntnisse im Bereich MySQL-Indexoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Allgemeinfunktionen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Protokolloperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Transaktionsoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-gespeicherte Prozeduren“ und „Zusammenfassung der Kenntnisse im Zusammenhang mit MySQL-Datenbanksperren“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Prinzip des MySQL-Indexfehlers
  • Die Prinzipien und Mängel der MySQL-Volltextindizierung
  • Grundlegendes zum MySQL-Abfrageoptimierungsprozess
  • Techniken zur Optimierung von MySQL-Paging-Abfragen
  • Methode zur Optimierung von MySQL-Gruppenabfragen
  • Detaillierte Erläuterung des MySQL-Indexprinzips und der Abfrageoptimierung

<<:  Dieser Artikel zeigt Ihnen, wie Sie Vue 3.0 responsive verwenden

>>:  So installieren und implementieren Sie einen FTP-Image-Server unter Linux

Artikel empfehlen

Eine kurze Diskussion zur Verwendung von React.FC und React.Component

Inhaltsverzeichnis 1. Reagieren.FC<> 2. Kla...

So starten Sie ein JAR-Paket und führen es unter Linux im Hintergrund aus

Der Linux-Befehl zum Ausführen des JAR-Pakets lau...

Beispiel zum Ändern der inländischen Quelle in Ubuntu 18.04

Die eigene Quelle von Ubuntu stammt aus China, da...

So löschen Sie den gesamten Inhalt eines Verzeichnisses mit Ansible

Studierende, die Ansible verwenden, wissen, dass ...

Die Verwendung von FrameLayout in sechs Layouts

Vorwort In der letzten Ausgabe haben wir Ihnen Li...

MySQL deaktiviert die Überprüfung der Kennwortstärke

Informationen zur Überprüfung der Kennwortstärke:...

Einführung in das Fokuselement document.activeELEment in JavaScript

Inhaltsverzeichnis 1. Der Fokus liegt standardmäß...

Allgemeine JavaScript-Anweisungen: Schleife, Beurteilung, Zeichenfolge in Zahl

Inhaltsverzeichnis 1. Schalter 2. While-Schleife ...

Analyse der Implementierungsschritte für die Docker-Containerverbindung

Im Allgemeinen verwenden wir nach dem Start des C...

CSS realisiert den Maskeneffekt, wenn die Maus über das Bild bewegt wird

1. Setzen Sie den HTML-Code der Maskenebene und d...

Detaillierte Erklärung der Docker Compose-Verwendung

Inhaltsverzeichnis Docker Compose-Nutzungsszenari...

JS implementiert Anforderungsdispatcher

Inhaltsverzeichnis Abstraktion und Wiederverwendu...