Eine Kurzanleitung zu MySQL-Indizes

Eine Kurzanleitung zu MySQL-Indizes

Die Einrichtung eines MySQL-Index ist für den effizienten Betrieb von MySQL sehr wichtig. Ein Index kann die Abrufgeschwindigkeit von MySQL erheblich verbessern.

Um eine Analogie zu verwenden: Wenn MySQL mit dem richtigen Design und den richtigen Indizes ein Lamborghini ist, dann ist MySQL ohne Index ein von Menschen angetriebenes Dreirad.

Indizes werden in einspaltige Indizes und zusammengesetzte Indizes unterteilt. Ein einspaltiger Index ist ein Index, der nur eine einzige Spalte enthält. Eine Tabelle kann mehrere einspaltige Indizes haben, diese sind jedoch keine zusammengesetzten Indizes. Zusammengesetzter Index, d. h. ein Index enthält mehrere Spalten.

Beim Erstellen eines Index müssen Sie sicherstellen, dass der Index auf die SQL-Abfrageanweisung angewendet wird (normalerweise als Bedingung der WHERE-Klausel).

Tatsächlich ist der Index auch eine Tabelle, die den Primärschlüssel und die Indexfelder speichert und auf die Datensätze der Entitätstabelle verweist.

Oben wurde zwar über die Vorteile der Verwendung von Indizes gesprochen, eine übermäßige Verwendung von Indizes führt jedoch zu Missbrauch. Daher haben Indizes auch ihre Nachteile: Obwohl Indizes die Abfragegeschwindigkeit erheblich verbessern, verringern sie auch die Geschwindigkeit beim Aktualisieren von Tabellen, beispielsweise bei INSERT, UPDATE und DELETE. Denn beim Aktualisieren einer Tabelle muss MySQL nicht nur die Daten, sondern auch die Indexdatei speichern.

Das Erstellen eines Indexes beansprucht Speicherplatz für Indexdateien.

Normaler Index

Index erstellen

Dies ist der grundlegendste Index und es bestehen für ihn keine Einschränkungen. Es kann auf folgende Arten erstellt werden:

CREATE INDEX indexName ON mytable(Benutzername(Länge));

Beim Typ CHAR oder VARCHAR kann die Länge kleiner sein als die tatsächliche Länge des Felds; beim Typ BLOB oder TEXT muss die Länge angegeben werden.

Tabellenstruktur ändern

ALTER mytable ADD INDEX [indexName] ON (Benutzername(Länge))

Direkt beim Erstellen einer Tabelle angeben

TABELLE ERSTELLEN meineTabelle( 
 
ID INT NICHT NULL, 
 
Benutzername VARCHAR(16) NOT NULL, 
 
INDEX [Indexname] (Benutzername (Länge)) 
 
);

Syntax zum Löschen eines Indexes

DROP INDEX [Indexname] ON meineTabelle;

Eindeutiger Index

Er ähnelt dem vorherigen gewöhnlichen Index, außer dass die Werte der Indexspalte eindeutig sein müssen, aber Nullwerte zulässig sind. Wenn es sich um einen zusammengesetzten Index handelt, muss die Kombination der Spaltenwerte eindeutig sein. Es kann auf folgende Arten erstellt werden:

Index erstellen

EINDEUTIGEN INDEX ERSTELLEN indexName ON mytable(Benutzername(Länge))

Tabellenstruktur ändern

ALTER mytable ADD UNIQUE [indexName] ON (Benutzername(Länge))

Direkt beim Erstellen einer Tabelle angeben

TABELLE ERSTELLEN meineTabelle( 
 
ID INT NICHT NULL, 
 
Benutzername VARCHAR(16) NOT NULL, 
 
UNIQUE [indexName] (Benutzername(Länge)) 
 
);

Hinzufügen und Löschen von Indizes mit dem ALTER-Befehl

Es gibt vier Möglichkeiten, einer Tabelle Indizes hinzuzufügen:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): Diese Anweisung fügt einen Primärschlüssel hinzu, was bedeutet, dass der Indexwert eindeutig sein muss und nicht NULL sein darf.
  • ALTER TABLE tbl_name ADD UNIQUE index_name(column_list): Diese Anweisung erstellt einen Index, dessen Werte eindeutig sein müssen (außer NULL, das mehrfach vorkommen kann).
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list): Fügt einen normalen Index hinzu. Der Indexwert kann mehrfach vorkommen.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list): Diese Anweisung gibt den Index als FULLTEXT für die Volltextindizierung an.

Das folgende Beispiel fügt einer Tabelle einen Index hinzu.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Sie können Indizes auch mit der DROP-Klausel im ALTER-Befehl entfernen. Versuchen Sie das folgende Beispiel, um den Index zu löschen:

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

Verwenden Sie den ALTER-Befehl zum Hinzufügen und Löschen von Primärschlüsseln

Ein Primärschlüssel kann nur auf eine Spalte angewendet werden. Wenn Sie einen Primärschlüsselindex hinzufügen, müssen Sie sicherstellen, dass der Primärschlüssel standardmäßig nicht leer (NOT NULL) ist. Nachfolgend sind einige Beispiele aufgeführt:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

Sie können einen Primärschlüssel auch mit dem ALTER-Befehl löschen:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Beim Löschen eines Schlüssels müssen Sie nur den PRIMÄRSCHLÜSSEL angeben, beim Löschen eines Index müssen Sie jedoch den Indexnamen kennen.

Indexinformationen anzeigen

Mit dem Befehl SHOW INDEX können Sie die relevanten Indexinformationen in der Tabelle auflisten. Sie können die Ausgabe durch Hinzufügen von \G formatieren.

Probieren Sie die folgenden Beispiele aus:

mysql> SHOW INDEX FROM Tabellenname\G
........

Das Obige ist eine kurze Einführung in die Details von MySQL-Indizes. Weitere Informationen zu MySQL-Indizes finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Zusammenfassung der Wissenspunkte zum Abdecken von Indizes in MySQL
  • Detaillierte Erklärung der MySQL InnoDB-Indexerweiterung
  • MySQL-Performance-Optimierung: So nutzen Sie Indizes effizient und richtig
  • Grundlegende Syntax des MySQL-Index
  • Detaillierte Erläuterung der kombinierten MySQL-Indexmethode
  • Ein Artikel zum Erlernen von Fähigkeiten zur Optimierung von MySQL-Indexabfragen
  • Mysql-Indextypen und grundlegende Anwendungsbeispiele
  • Detaillierte Erläuterung der zugrunde liegenden Implementierung des absteigenden Index, einer neuen Funktion von MySQL 8
  • Was ist schneller: MySQL-Volltextindex, gemeinsamer Index, Like-Abfrage und JSON-Abfrage?
  • So verwenden Sie MySQL zur Abdeckung von Index- und Tabellenrückgabe
  • Verschiedene Arten von MySQL-Indizes

<<:  Reagieren Sie auf den nativen ScrollView-Pulldown-Aktualisierungseffekt

>>:  So verwenden Sie Gitlab-ci zur kontinuierlichen Bereitstellung auf Remotecomputern (ausführliches Tutorial)

Artikel empfehlen

Detaillierte Erläuterung der Angular-Routing-Unterrouten

Inhaltsverzeichnis 1. Subroutensyntax 2. Beispiel...

So ändern Sie die Tomcat-Portnummer in Linux

Ich habe hier mehrere Tomcats. Wenn ich sie gleic...

Beispielcode zum Generieren eines QR-Codes mit js

Vor einiger Zeit musste das Projekt die Funktion ...

MySQL etabliert eine effiziente Indexbeispielanalyse

Dieser Artikel beschreibt anhand von Beispielen, ...

HTML-Bild img-Tag_Powernode Java Academy

Zusammenfassung Projektbeschreibungsformat < i...

Lassen Sie uns ausführlich über den Vue-Lebenszyklus sprechen

Inhaltsverzeichnis Vorwort 1. Lebenszyklus in Vue...

innodb_flush_method-Wertmethode (Beispielerklärung)

Mehrere typische Werte von innodb_flush_method fs...

So erstellen Sie ein neues Image basierend auf einem vorhandenen Image in Docker

Das Erstellen neuer Images aus vorhandenen Images...

Eine vollständige Anleitung zu CSS-Stilattributen css() und width() in jQuery

Inhaltsverzeichnis 1. Grundlegende Verwendung von...

Docker ermöglicht mehrere Port-Mapping-Befehle

wie folgt: docker run -d -p 5000:23 -p 5001:22 --...

So installieren Sie mehrere mysql5.7.19 (tar.gz)-Dateien unter Linux

Informationen zur ersten Installation der MySQL-5...

Lösen Sie das Problem, dass await in forEach nicht funktioniert

1. Einleitung Vor ein paar Tagen bin ich bei der ...

So entfernen Sie den gepunkteten Rahmen beim Klicken auf einen Link in FireFox

Ich bin heute auf mehrere Browserkompatibilitätsp...

Die Kombination und der Unterschied zwischen ENTRYPOINT und CMD im Dockerfile

Im vorherigen Artikel [Detaillierte Erläuterung v...