Wie MySQL einer vorhandenen Tabelle einen Index hinzufügt

Wie MySQL einer vorhandenen Tabelle einen Index hinzufügt
Ein Index, der auch als Indizes bezeichnet wird, bezieht sich auf eine Datenstruktur. Wenn eine Tabelle keinen Index hat, fordert die Ausführung einer Abfrage MySQL auf, alle Zeilen zu scannen, bis die angeforderten Informationen gefunden werden. Wenn die Tabelle viele Datensätze enthält, dauert dieser Prozess lange, was die Datenbankleistung erheblich beeinflusst.

In diesem Tutorial wird Ihnen angezeigt, wie Sie einen Index in einer MySQL -Tabelle für vorhandene und neue Tabellen erstellen können.

Bevor wir Abfragen ausführen und Indizes erstellen, sollten wir uns einige MySQL -Indexkonzepte ansehen.

Arten von MySQL -Indizes

MySQL unterstützt zwei Arten von Indizes:

  1. Ein primärer oder gruppierter Index
  2. Sekundärindex

MySQL erstellt automatisch einen Index, der als primär bezeichnet wird, jederzeit eine Tabelle mit einem Primärschlüssel. Abhängig von der Datenbankmotor kann MySQL, wenn der Primärschlüssel oder ein eindeutiger Schlüssel nicht in einer Tabelle verfügbar ist, eine versteckte Taste in der Spalte mit ID -Werten erstellen.

Der von MySQL erstellte primäre Index wird zusammen mit den Daten in derselben Tabelle gespeichert. Andere Indizes, die innerhalb einer Tabelle existieren, abgesehen vom Primärindex sind als Sekundärindizes bezeichnet.

So fügen Sie einer vorhandenen Tabelle einen Index hinzu

Obwohl MySQL empfiehlt.

Um einer vorhandenen Tabelle einen Index hinzuzufügen, können wir die Altersabfrage verwenden.

Nehmen wir eine Beispieldatenbank mit den Tabellen, wie in der folgenden Abfrage gezeigt:

Datenbank erstellen, wenn nicht mySQL_indices existiert;
Verwenden Sie MySQL_indices;
Erstellen Sie Tabellenwanderungen (
ID int auto_increment Primärschlüssel,
CPT_NAME
Varchar (255) nicht null,
Schiff
Varchar (255) nicht null
);
In Treks einfügen (CPT_Name, Schiff)
Werte ("Carol Freeman", "USS Cerritos"),
('Christopher Pike', 'USS Discovery'),
('Jean-Luc Picard', 'USS Enterprise'),
('James T. Kirk ',' USS Enterprise '),
('Jonathan Archer', 'USS Enterprise');

Im obigen Beispiel erstellt MySQL eine Indexschlüssel mit der ID -Spalte, da sie als Primärschlüssel angegeben ist.

Sie können dies mit der Abfrage überprüfen:

Index von Treks anzeigen;

Um einen benutzerdefinierten Index zu erstellen, verwenden Sie die Alter -Abfrage als:

Änderungstabelle Treks Index hinzufügen (CPT_Name);

Im obigen Beispiel verwenden wir den CPT_NAME als zweite Primärschlüssel. Um die Indizes anzuzeigen, verwenden Sie die Abfrage:

Wenn nicht angegeben, stand MySQL einen Index als B-Tree standardmäßig. Andere unterstützte Indextypen umfassen Hash und FullText.

Der Indextyp hängt von der Speichermotor für die angegebene Tabelle ab.

Um einen Index für eine Spalte oder Spaltenliste zu erstellen, verwenden wir die Indexabfrage erstellen. Um beispielsweise einen Index für die Spalte „Schiff: Schiff“ zu erstellen, können wir dies tun:

Erstellen index Ship_index auf Treks (Schiff);

Wenn wir die Show -Indexabfrage in der Tabelle ausführen, sollten wir einen Index namens "Ship_index" in der Spalte "Ship" sehen.

So fügen Sie einer neuen Tabelle einen Index hinzu

Die empfohlene Möglichkeit besteht darin, beim Erstellen einer Tabelle einen Index oder Indizes zu erstellen. Geben Sie dazu die Spalten an, die als Indizes innerhalb der Index () -frage verwendet werden sollen.

Beginnen wir damit, die Treks -Tabelle im vorherigen Beispiel fallen zu lassen:

Droptabelle Treks;

Lassen Sie uns als nächstes die Tabelle wieder herstellen und den Index während der Erstellung angeben. Eine Beispielabfrage ist:

Erstellen Sie Tabellenwanderungen (
ID int auto_increment Primärschlüssel,
CPT_NAME
Varchar (255) nicht null,
Schiff
Varchar (255) nicht null,
Index (Schiff)
);
In Treks einfügen (CPT_Name, Schiff)
Werte ("Carol Freeman", "USS Cerritos"),
('Christopher Pike', 'USS Discovery'),
('Jean-Luc Picard', 'USS Enterprise'),
('James T. Kirk ',' USS Enterprise '),
('Jonathan Archer', 'USS Enterprise');

In der obigen Beispielabfrage fügen wir die Schiffsspalte als Index während der Erstellung der Tabelle hinzu. Da die ID der Hauptschlüssel ist, fügt MySQL sie automatisch als Index hinzu.

Index von Treks anzeigen;

Abschluss

In diesem Tutorial haben Sie gelernt, wie Sie einer vorhandenen Tabelle einen Index hinzufügen, einen Index für eine Spalte hinzufügen und während der Erstellung der Tabellen einen Index erstellen.