Latest web development tutorials

MySQL Index

MySQL MySQL Indizes bauen für einen effizienten Betrieb sehr wichtig ist, Indizes können die Abrufgeschwindigkeit von MySQL erheblich verbessern.

Zum Beispiel, wenn ein vernünftiges Design und den Index MySQL ist ein Lamborghini verwenden, dann gibt es kein Design und die Verwendung des Index ist MySQL ein Dreirad.

Indexpunkte separaten Index und Kombinationsindex. Separate Index, der nur einen einzigen Spaltenindex enthält, kann eine Tabelle mehrere separate Index haben, aber dies ist kein Composite-Index. Composite Index, nämlich ein Kabel, das eine Vielzahl von Spalten umfasst.

Wenn Sie einen Index zu erstellen, müssen Sie sicherstellen, dass der Index in einer SQL-Abfrage Bedingungen verwendet wird (in der Regel als eine Bedingung der WHERE-Klausel).

In der Tat ist der Index auch eine Tabelle, die die Primärschlüssel und Indexfelder, und die Punkte hält die Entitätentabelle aufzuzeichnen.

Die oben sprechen über die Vorteile des Index, aber die übermäßige Verwendung des Index in Missbrauch führen. Daher hat der Index auch seine Nachteile: Während der Index stark Abfragegeschwindigkeit erhöht, während es die Geschwindigkeit der Aktualisierung der Tabelle zu reduzieren, wie Tabelle INSERT, UPDATE und DELETE. Da die Aktualisierungstabelle ist MySQL nicht nur die Daten zu speichern, sondern auch über Index-Datei speichern.

Indexing nimmt Speicherplatz in der Indexdatei.


Allgemein Index

Index erstellen

Dies ist die grundlegende Index, es keine Einschränkungen. Es hat die folgenden Arten erstellt:

CREATE INDEX indexName ON mytable(username(length)); 

Wenn es CHAR, VARCHAR-Typ, kann eine Länge von weniger als die tatsächliche Länge des Feldes, wenn die BLOB und TEXT-Typen, die Länge angeben müssen.

Ändern Tabellenstruktur

ALTER mytable ADD INDEX [indexName] ON (username(length)) 

Wenn Sie eine Tabelle direkt erstellen angeben

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

Index löschen Syntax

DROP INDEX [indexName] ON mytable; 

Eindeutiger Index

Es ist ähnlich wie die vorherigen allgemeinen Index, es ist anders: der Wert der Indexspalten müssen eindeutig sein, aber frei Wert erlauben. Wenn es sich um eine Kombination des Index ist, muss der Spaltenwert eindeutig sein. Es hat die folgenden Arten erstellt:

Index erstellen

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

Ändern Tabellenstruktur

ALTER mytable ADD UNIQUE [indexName] ON (username(length)) 

Wenn Sie eine Tabelle direkt erstellen angeben

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

Verwenden Sie den Befehl ALTER hinzuzufügen und zu löschen Indizes

Es gibt vier Möglichkeiten Indexdatentabelle hinzuzufügen:

  • ALTER TABLE tbl_name PRIMARY KEY (column_list ADD ): Diese Anweisung fügt einen Primärschlüssel, was bedeutet , dass der Indexwert muss eindeutig sein und nicht NULL sein kann.

  • ALTER TABLE tbl_name UNIQUE index_name (column_list ADD ): Diese Anweisung erstellt einen Indexwert muss eindeutig sein (außer außerhalb NULL, kann NULL mehrfach auftreten).
  • ALTER TABLE tbl_name INDEX index_name (column_list ADD ): fügen Sie einen normalen Index, kann der Indexwert mehrfach vorkommen.
  • ALTER TABLE tbl_name FULLTEXT- index_name ADD (column_list ): Diese Anweisung gibt der Index FULLTEXT-, für die Volltextindizierung ist.

Die folgenden Beispiele fügen einen Index in der Tabelle.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

Sie können auch die DROP-Klausel verwenden, um den Index in der ALTER Befehl zu entfernen. Versuchen Sie, die folgenden Beispiele den Index zu löschen:

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

Verwenden Sie den Befehl ALTER hinzufügen und löschen den Primärschlüssel

wirken nur auf einer Primärschlüsselspalte, wenn Sie einen Primärschlüsselindex hinzuzufügen, müssen Sie sicherstellen, dass die Standard-Primär-Schlüssel nicht leer ist (NOT NULL). Beispiele sind wie folgt:

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

Sie können auch den Befehl ALTER den Primärschlüssel zu löschen:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

Geben Sie einfach PRIMARY KEY die angegebene Zeit löschen, aber wenn Sie den Index zu löschen, müssen Sie den Namen des Index kennen.


Anzeige Index-Informationen

Sie können die SHOW INDEX-Befehl verwenden, um die Tabelle Index-Informationen aufzulisten. \ G zu formatieren die Ausgabe Durch das Hinzufügen.

Versuchen Sie, die folgenden Beispiele:

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