Grundlegende Syntax des MySQL-Index

Grundlegende Syntax des MySQL-Index

Ein Index ist eine sortierte Datenstruktur! Die Felder, die für die Suche in der Where-Bedingung und die Sortierung in der Order-By-Bedingung verwendet werden können, können durch die Indizierung der physischen Adresse der Daten schnell lokalisiert und gefunden werden.

Indexklassifizierung

1. Normaler Index: keine Einschränkungen, hauptsächlich zur Verbesserung der Abfrageeffizienz verwendet

2. Eindeutiger Index (UNIQUE): Fügt Dateneindeutigkeitsbeschränkungen basierend auf gewöhnlichen Indizes hinzu. Es können mehrere

3. Primärschlüsselindex: Der Primärschlüsselindex fügt auf der Grundlage des eindeutigen Index eine Nicht-Null-Einschränkung hinzu, dh NICHT NULL + EINZIGARTIG, und es kann nur einen geben

4. Volltextindex (FULLTEXT): Der integrierte Volltextindex von MySQL unterstützt nur Englisch.

Im Allgemeinen wird eine dedizierte Volltextsuchmaschine verwendet, beispielsweise ES (ElasticSearch).

Index erstellen

#Normaler Index

ALTER TABLE Tabellenname ADD INDEX Indexname (Spaltenliste);

#Eindeutiger Index

ALTER TABLE Tabellenname ADD UNIQUE Indexname (Spaltenliste);

#Primärschlüsselindex

ALTER TABLE Tabellenname ADD PRIMARY KEY Indexname (Spaltenliste);

#Volltextindex (String-Datentyp)

ALTER TABLE Tabellenname ADD Volltextindexname (Spaltenliste);  

#Index anzeigen

Index von Student anzeigen \G

Hier wird \G anstelle des Semikolon-Abschlusszeichens verwendet; die Ausgabedateninformationen können formatiert werden.

#Index löschen

Ändern Sie die Tabelle, um den Index zu löschen

ALTER TABLE Tabellenname DROP INDEX Indexname;

Löschen des Primärschlüsselindexes

ALTER TABLE Tabellenname DROP PRIMARY KEY;

Wenn die Indexspalte eine Spalte ist, handelt es sich um einen einzelnen Index.
Ein durch die Kombination mehrerer Spalten erstellter Index wird als gemeinsamer Index bezeichnet.

Unter welchen Umständen kann ein Index erstellt werden?

1. Der Wert des Feldes unterliegt Eindeutigkeitsbeschränkungen, wie z. B. ID

2. Felder, die häufig als WHERE-Abfragebedingungen verwendet werden, insbesondere wenn die Datentabelle groß ist

Wenn die Datenmenge sehr groß ist, ist es schrecklich, wenn keine WHERE-Bedingungsfilterung vorhanden ist.

3. Spalten, die häufig GROUP BY und ORDER BY sein müssen

4. Die WHERE-Bedingungsspalten von UPDATE und DELETE müssen im Allgemeinen auch Indizes erstellen

Der Grund dafür ist, dass wir den Datensatz zuerst basierend auf der WHERE-Bedingungsspalte abrufen und ihn dann aktualisieren oder löschen müssen. Der Effekt der Aktualisierung von Daten mit Nichtindexfeldern ist offensichtlicher.

Wenn zu viele Indizes vorhanden sind, stellt dies eine Belastung bei der Datenaktualisierung dar, sofern es sich um Indexaktualisierungen handelt.

5.DISTINCT-Felder müssen Indizes erstellen

6. Wenn Sie JOIN-Operationen für mehrere Tabellen ausführen, müssen Sie beim Erstellen von Indizes die folgenden Grundsätze beachten

Die Anzahl der verbundenen Tabellen sollte 3 nicht überschreiten. Jede zusätzliche Tabelle entspricht dem Hinzufügen einer verschachtelten Schleife, und die Größenordnung wird sehr schnell zunehmen. Erstellen Sie Indizes für die für Verbindungen verwendeten Felder, und die Typen der Felder in mehreren Tabellen müssen konsistent sein.

Wann müssen Sie keinen Index erstellen?

Der Wert eines Indexes besteht darin, ein Feld schnell zu finden. Wenn ein Feld nicht gefunden werden kann, ist es normalerweise nicht erforderlich, einen Index zu erstellen.

1. Es ist nicht erforderlich, Indizes für Felder zu erstellen, die nicht in den WHERE-Bedingungen verwendet werden (einschließlich GROUP BY und ORDER BY).

2. Wenn die Tabelle zu wenige Datensätze hat, beispielsweise weniger als 1.000 Zeilen, muss kein Index erstellt werden.

3. Wenn ein Feld eine große Menge doppelter Daten enthält, muss kein Index erstellt werden, z. B. im Feld „Geschlecht“.

4. Häufig aktualisierte Felder müssen nicht unbedingt indiziert werden. Denn wenn Sie Daten aktualisieren, müssen Sie auch den Index aktualisieren. Wenn zu viele Indizes vorhanden sind, wird dies beim Aktualisieren des Indexes eine Belastung darstellen und somit die Effizienz beeinträchtigen.

Unter welchen Umständen wird der Index scheitern?

1. Wenn die Indexspalte für die Berechnung von Ausdrücken und Funktionen verwendet wird, schlägt dies fehl

2. Wenn in der WHERE-Klausel die Bedingungsspalte vor OR indiziert ist, die Bedingungsspalte nach OR jedoch nicht indiziert ist, wird der Index ungültig.

3. Wenn wir LIKE für Fuzzy-Abfragen verwenden, darf der Ausdruck nicht mit % beginnen

4. Versuchen Sie, die Indexspalte auf NOT NULL-Einschränkung zu setzen

Um zu bestimmen, ob eine Indexspalte NOT NULL ist, ist häufig ein vollständiger Tabellenscan erforderlich. Daher ist es am besten, das Feld beim Entwerfen der Datentabelle auf eine NOT NULL-Einschränkung festzulegen. Sie können beispielsweise den Standardwert eines Felds vom Typ INT auf 0 festlegen. Setzt den Standardwert eines Zeichentyps auf eine leere Zeichenfolge ('')

Oben finden Sie ausführliche Informationen zur grundlegenden Syntax des MySQL-Index. Weitere Informationen zur MySQL-Indexsyntax finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • MySql-Index verbessert die Abfragegeschwindigkeit allgemeine Methoden Codebeispiele
  • Zusammenfassung mehrerer Situationen, in denen MySQL-Indizes fehlschlagen
  • Detaillierte Erläuterung des MySQL-Clusterindex und des Nicht-Clusterindex
  • Lösungen für Probleme bei der Leistungsoptimierung von MySQL-Indizes
  • Zusammenfassung einiger gängiger Schreibmethoden, die zu MySQL-Indexfehlern führen
  • Verschiedene Arten von MySQL-Indizes
  • MySQL-Performance-Optimierung: So nutzen Sie Indizes effizient und richtig
  • Detaillierte Erläuterung der kombinierten MySQL-Indexmethode
  • Gründe und Lösungen für die Auswahl des falschen Index durch MySQL

<<:  Detaillierte Erläuterung der default_server-Definition und der entsprechenden Regeln von nginx

>>:  Detaillierte Erklärung der JavaScript-Array-Deduplizierung

Artikel empfehlen

Eine kurze Diskussion zum Problem von Daten mit Nullwerten in der MySQL-Datenbank

Standardmäßig akzeptiert MySQL das Einfügen von 0...

So installieren und implementieren Sie MySQL 8.0 unter CentOS8

Die offizielle Version 8.0.11 von MySQL 8 wurde v...

So importieren Sie Excel-Dateien in eine MySQL-Datenbank

In diesem Artikel erfahren Sie, wie Sie Excel-Dat...

Der Prozess der Installation von Docker im Linux-System

In diesem Blog führe ich Sie in einfachen Schritt...

Eine kurze Diskussion über JavaScript-Drosselung und Anti-Shake

Inhaltsverzeichnis Drosselung und Anti-Shake Konz...

Welchen MySQL-Eindeutigen Index oder Normalen Index soll ich wählen?

Stellen Sie sich ein Szenario vor, in dem beim En...

22 Vue-Optimierungstipps (Projektpraxis)

Inhaltsverzeichnis Code-Optimierung Verwenden der...

So legen Sie den Fokus auf HTML-Elemente fest

Code kopieren Der Code lautet wie folgt: <Körp...

Detaillierte Erklärung der Interaktion zwischen React Native und IOS

Inhaltsverzeichnis Voraussetzungen RN übergibt We...