Index in MySQL erstellen: MySQL-Index-Tutorial [2022]
Veröffentlicht: 2021-01-01Ein Data Scientist oder Programmierer muss mit großen Datenmengen arbeiten und in der Lage sein, effizient damit umzugehen, um eine schnellere Ausführung zu erreichen. Sie müssen auch wissen, wie die Daten organisiert sind und wie sie am schnellsten auf die benötigten Daten zugreifen können.
Da MySQL ein relationales Datenbankverwaltungssystem ist, das Anwendungen in verschiedenen Bereichen wie Webdatenbanken, E-Commerce-Anwendungen, soziale Medien usw. hat, müssen Datenwissenschaftler alle Techniken im Zusammenhang mit MySQL kennen, darunter auch Indizes. Der Artikel beschreibt, wie man Index in MySQL erstellt.
Inhaltsverzeichnis
Was ist ein Index?
In MySQL werden Indizes verwendet, um Daten in einer organisierten sequenziellen Weise zu sortieren und die Daten effizient und schnell abzurufen. Sie werden erstellt, indem eine oder mehrere Spalten verwendet werden, die zum Filtern von Daten verwendet werden. Indizes sind ein Tabellentyp, der ein Primär- oder Indexfeld und einen Zeiger auf jeden Datensatz in der Haupttabelle enthält.
Zum besseren Verständnis kann ein Buchindex als Beispiel herangezogen werden. Anstatt nach einer Seite zu suchen, indem Sie alle Seiten in einem Buch durchgehen, kann der Buchindex überprüft werden, um die gesuchte Seite zu finden.
In den meisten Datenbanksystemen wird eine hohe und schnelle Leistung benötigt. Viele Unternehmen investieren riesige Geldsummen in Hardware für schnellere Datenabrufe und -manipulationen. Aber durch die Optimierung der Datenbank können die Kosten gesenkt werden.
Die Antwortzeit ist in der Regel länger, da Datensätze zufällig gespeichert werden und Suchabfragen die benötigten Daten finden müssen, indem sie die gesamten gespeicherten Datensätze durchlaufen. Indizes machen diese Suche einfacher und schneller.

Lesen: Spaltennamen in SQL umbenennen
Index erstellen
Sie können in MySQL einen Index für eine Tabelle erstellen, indem Sie die folgende grundlegende Syntax verwenden.
CREATE INDEX Indexname Tabellenname (Spaltenname);
Sie können auch einen eindeutigen Index für eine Tabelle erstellen. Dies bedeutet, dass der Name eindeutig ist und zwei beliebige Zeilen nicht denselben Namen haben können. Dazu kann die folgende Syntax verwendet werden.
CREATE UNIQUE INDEX index_name ON table_name (column_name);
Wenn ein sekundärer Index für eine Spalte erstellt wird, speichert MySQL die Werte in einer separaten Datenstruktur wie B-Tree und Hash. Wenn die Spalten in MySQL Zeichenfolgenspalten sind, können Sie einen Index für den führenden Teil der Spaltenwerte der Zeichenfolgenspalte erstellen, indem Sie die folgende Syntax verwenden:
Spaltenname (Länge)
Um den Schlüsselteil des Spaltenpräfixes beim Erstellen der Tabelle zu erstellen, kann die folgende Syntax verwendet werden:
TABELLE ERSTELLEN Tabellenname(
Spaltenliste,
INDEX(Spaltenname(Länge))
);
Und um einen Index zu einer bestehenden Tabelle hinzuzufügen:
CREATE INDEX Indexname ON Tabellenname (Spaltenname (Länge));
Die Länge ist hier die Anzahl der Zeichen, wenn es sich um einen nicht-binären String-Typ wie CHAR, VARCHAR und TEXT handelt, und die Anzahl der Bytes, wenn es sich um einen binären String-Typ wie BINARY, VARBINARY und BLOB handelt. Sie können in MySQL auch Spaltenpräfix-Schlüsselteile für CHAR-, VARCHAR-, BINARY- und VARBINARY-Spalten erstellen. Wenn Sie Indizes für BLOB- und TEXT-Spalten erstellt haben, müssen Sie die Schlüsselteile des Spaltenpräfixes angeben.
Im Fall von FULLTEXT-Indizes, die nur für InnoDB- und MyISAM-Tabellen unterstützt werden, können sie nur CHAR-, VARCHAR- und TEXT-Spalten enthalten. Die Indizierung von Spaltenpräfixen wird nicht unterstützt, und wenn eine Präfixlänge angegeben ist, wird sie ignoriert.
Muss gelesen werden: SQL-Projektideen
Ändern von Tabellen, um Index hinzuzufügen oder zu löschen
Um Indizes zu einer Tabelle hinzuzufügen, gibt es vier Arten von Anweisungen, die verwendet werden können:

- So fügen Sie einen Primärschlüssel hinzu:
ALTER TABLE Tabellenname ADD PRIMARY KEY (column_list);
Die hier indizierten Werte sollten eindeutig sein und dürfen nicht NULL sein.
- Für einen Index mit eindeutigen Werten:
ALTER TABLE Tabellenname ADD UNIQUE Indexname (Spaltenliste);
Die Werte sollten eindeutig sein, mit Ausnahme von NULL, das mehrmals vorkommen kann.
- So fügen Sie einen gewöhnlichen Index hinzu:
ALTER TABLE Tabellenname ADD INDEX Indexname (Spaltenliste);
Hier können die Werte mehrfach vorkommen.
- So erstellen Sie einen speziellen FULLTEXT-Index:
ALTER TABLE Tabellenname ADD FULLTEXT Indexname (Spaltenliste);
Der FULLTEXT-Index kann für die Textsuche verwendet werden.
In bestehenden Tabellen
Um einen Index in einer vorhandenen Tabelle hinzuzufügen, kann die folgende Syntax verwendet werden:
ALTER TABLE Tabellenname ADD INDEX (Indexname);
Um einen Index in einer Tabelle zu löschen, wird die DROP INDEX-Anweisung verwendet:
ALTER TABLE Tabellenname DROP INDEX (Indexname);
Indexinformationen anzeigen
Um alle Indizes aufzulisten, die einer beliebigen Tabelle zugeordnet sind, wird der Befehl SHOW INDEX verwendet.
ZEIGE INDEX VON Tabellenname\G
Das '\G' wird verwendet, um die Liste in einem vertikalen Format zu erstellen, dies vermeidet den langen Zeilenumbruch.
Lesen Sie auch: Fragen und Antworten zu SQL-Interviews
Absteigende Indizes
InnoDB kann die Einträge in absteigender Reihenfolge speichern, wenn der Index ein absteigender Index ist. Wenn also in der Abfrage die absteigende Reihenfolge angefordert wird, wählt der Optimierer diesen Index aus. Dies ist effizienter für Abfragen mit ORDER BY-Klauseln. Diese werden nur von der InnoDB-Speicher-Engine unterstützt.
Die Syntax zum Erstellen oder Hinzufügen absteigender Indizes entspricht der oben verwendeten alter- oder create-Syntax.
ALTER TABLE Tabellenname ADD Indexname (col1_name desc, col2_name asc);
CREATE INDEX index_name ON table_name (col1_name desc, col2_name asc);
Unsichtbare Indizes
Um Indizes für den Abfrageoptimierer als nicht verfügbar zu markieren, können unsichtbare Indizes verwendet werden. MySQL aktualisiert unsichtbare Indizes, wenn sich die Daten in den mit dem Index verknüpften Spalten ändern. Indizes sind standardmäßig sichtbar und um sie unsichtbar zu machen, müssen Sie die Sichtbarkeit zum Zeitpunkt der Erstellung explizit deklarieren oder den Befehl ALTER TABLE verwenden.
Um einen unsichtbaren Index zu erstellen, wird die folgende Syntax verwendet:
CREATE INDEX Indexname ON Tabellenname (c1, c2…) UNSICHTBAR;
Um die Sichtbarkeit vorhandener Indizes zu ändern, wird die folgende Syntax verwendet:
ALTER TABLE Tabellenname ALTER INDEX Indexname [VISIBLE | UNSICHTBAR];

Melden Sie sich für Online-Softwareentwicklungskurse von den besten Universitäten der Welt an. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Fazit
Die Leistung von MySQL-Suchanfragen kann durch die Verwendung von Indizes verbessert werden. Diese können beim Erstellen einer Tabelle definiert oder später hinzugefügt werden, wenn die Tabelle bereits erstellt wurde.
In diesem Artikel wurde kurz beschrieben, was ein Index ist und warum er verwendet wird. Der nächste Abschnitt erklärt, wie man einen Index in MySQL erstellt, wie er zu einer bestehenden Tabelle hinzugefügt werden kann und wie man einen eindeutigen Index erstellt.
Die verschiedenen Befehle zum Ändern von Tabellen und zum Erstellen oder Löschen eines Index wurden ebenfalls beschrieben, zusammen mit der Anzeige von Indexinformationen. Absteigende und unsichtbare Indizes wurden ebenfalls kurz erklärt.
Alles in allem wird das Erlernen und praktische Üben aller in diesem Artikel erwähnten Datenbanken zu Ihrer Erfahrung beitragen. Gehen Sie die Kursübersicht, das Lernen und die damit verbundenen Stellenangebote durch – Plattformen wie upGrad bieten leistungsstarke Kurse, die von renommierten Instituten wie IIIT-B im Executive PG Program Full Stack Development entwickelt wurden.
