Wie ein Index in einem Buch , ermöglicht eine MySQL- Index, den Sie die Daten effizienter zu finden. Der Index enthält nur die Felder, die Sie interessiert sind, bei der Sortierung auf , anstatt den gesamten Datensatz . Alle Datentypen können Indizes sein, und es können bis zu 16 Indizes pro Tabelle geben . Indizes können auf einem Präfix der Spalte (die ersten paar Zeichen jedes Datensatzes ) , die gesamte Spalte oder mehrere Spalten erstellt werden. Sie können sogar einen Volltext-Index . CREATE INDEX
Indizes werden in der Regel erstellt , wenn eine Tabelle mit der CREATE TABLE-Anweisung erstellt wird :
CREATE TABLE Beispiel ( empid INT ( 10) , fname VARCHAR ( 20) , lname VARCHAR ( 20) , INDEX ( empid ) );
Allerdings können Sie Indizes für Tabellen , nachdem die Tabellen mit dieser Aussage erstellt:
CREATE INDEX oN example ( empid ) EmployeeId ;
Indextypen
Präfix Indizes erstellt nur mit dem führenden Teil (Präfix ) der Spalte Wert . Zum Beispiel, wenn Sie auf einem indiziert Nachname, könnten Sie einen Index nur auf den ersten fünf Buchstaben des Namens ein . Spalten, die die "char" verwenden , " varchar " , "binary ", " varbinary ", " Klecks " und " Text" können alle Datentypen mit Präfixen indiziert werden. Die Größe des Präfix wird in Zeichen für String-Datentypen und Byte für binäre Datentypen angegeben. Die Größe wird direkt nach den Namen der Spalte in der CREATE TABLE- und CREATE INDEX-Anweisungen angezeigt. Zum Beispiel: .
CREATE INDEX ON last_name Beispiel ( fname (5) );
(5) Bezeichnung ist die Länge des Präfix im Zeichen
Spaltenpräfixe machen die Index-Datei , die kleiner Speicherplatz spart und möglicherweise beschleunigen "INSERT "-Aussagen , da diese Aussagen den Index sowie die Tabelle zu aktualisieren müssen .
ein eindeutiger Index erstellt einen Index , wo alle Werte im Index sind voneinander getrennt . Wenn Sie einen neuen Indexwert, der einen vorhandenen Wert übereinstimmt hinzuzufügen , tritt ein Fehler auf . Die einzige Ausnahme von dieser Regel ist der NULL-Wert . Es können mehrere NULL-Werte in einen eindeutigen Index sein . Präfix Indizes kann auch eindeutig sein. Die Syntax, um einen eindeutigen Index zu erstellen ist :
CREATE UNIQUE INDEX last_name ON example ( fname (5) );
Volltext -Indizes werden über die gesamte Spalte erstellt . Vorsätze sind nicht für Volltextindexen gestattet. Die Spalte muss mit dem char , varchar und text -Datentypen erstellt werden. Die Syntax zur Erstellung eines Volltextindex ist :
Volltextindex erstellen Beschreibung ON example ( Beschreibungen );
über Indizes
Ohne Indizes wird MySQL auf dem ersten Datensatz in einer Tabelle zu starten, und lesen Sie die gesamte Tabelle , um alle relevanten Aufzeichnungen zu finden. Wenn die Tabelle einen Index kann MySQL finden Sie die Position der Daten in der Mitte der Datendatei
Indizes werden verwendet, wenn eine Anweisung eine WHERE-Klausel , wie zB: .
SELECT EmpID aus Beispiel WHERE lname = ' Smith ';
Wenn es mehrere Indizes aus MySQL wählen, wird der Index , der die geringste Menge an Zeilen zurückgibt . Dies eliminiert Zeilen aus der Betrachtung während einer Abfrage .
Join-Abfragen können Indizes verwenden, um schnell Zeilen in mehreren Tabellen . Allerdings sind sie nur sinnvoll, wenn die Werte der gleichen oder ähnliche Datentypen sind .
Indizes werden auch verwendet, um die MIN () oder MAX ( )-Werte in einem Index Spalte finden und zu sortieren oder eine Gruppe einen Tisch .