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

Lösung für den Überlauf der HTML-Tabelle

Wenn die Tabelle breit ist, kann es zu einem Über...

20 JavaScript-Tipps zur Verbesserung der Entwicklungseffizienz

Inhaltsverzeichnis 1. Arrays deklarieren und init...

Detaillierte Analyse des MySQL 8.0-Redo-Logs

Inhaltsverzeichnis Vorwort Generierung eines Redo...

Detaillierte Erläuterung der grundlegenden Docker-Netzwerkkonfiguration

Externer Zugriff Ports nach dem Zufallsprinzip zu...

Der Unterschied zwischen MySQL-Datenbankhost 127.0.0.1 und localhost

Viele meiner Freunde haben möglicherweise ein Pro...

So verwenden Sie Docker Compose zum Erstellen eines FastDFS-Dateiservers

Im vorherigen Artikel wurde ein ausführliches Bei...

Lösung für EF (Entity Framework)-Einfüge- oder Aktualisierungsfehler

Fehlermeldung: Die Store-Update-, Insert- oder De...

Nginx-Server fügt benutzerdefinierte Systemd-Dienstprozessanalyse hinzu

1. Nehmen Sie nginx als Beispiel Nginx mit dem Be...

Fähigkeiten zur Seiten-Refaktorierung - Inhalt

Genug des Smalltalks <br />Basierend auf de...

Einige Kenntnisse über die absolute und relative Positionierung von Seitenelementen

Ab heute werde ich regelmäßig kleine Wissenspunkte...

202 kostenlose, hochwertige XHTML-Vorlagen (1)

Hier präsentiert 123WORDPRESS.COM den ersten Teil...