Heim > Datenbank > MySQL-Tutorial > Hauptteil

Ausführliche Erklärung und Beispiel-Tutorial des MySQL-Index

零下一度
Freigeben: 2017-05-16 10:42:54
Original
1206 Leute haben es durchsucht

MySQL-Index

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

Wenn beispielsweise MySQL, das richtig konzipiert ist und Indizes verwendet, ein Lamborghini ist, dann ist MySQL, das nicht konzipiert ist und Indizes verwendet, ein menschliches Dreirad.

Indizes werden in einspaltige Indizes und kombinierte Indizes unterteilt. Ein einspaltiger Index bedeutet, dass ein Index nur eine einzige Spalte enthält. Eine Tabelle kann mehrere einspaltige Indizes haben, es handelt sich jedoch nicht um einen kombinierten Index. Kombinierter Index, das heißt, ein Index enthält mehrere Spalten.

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

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

Das oben Genannte spricht von den Vorteilen der Verwendung von Indizes, aber eine übermäßige Verwendung von Indizes führt zu Missbrauch. Daher hat der Index auch seine Nachteile: Obwohl der Index die Abfragegeschwindigkeit erheblich verbessert, verringert er auch die Geschwindigkeit der Aktualisierung der Tabelle, z. B. INSERT, UPDATE und DELETE in der Tabelle. Denn beim Aktualisieren der Tabelle muss MySQL nicht nur die Daten, sondern auch die Indexdatei speichern. Das Erstellen von Indexdateien belegt Speicherplatz.

Normaler Index

Index erstellen

Dies ist der einfachste Index, er unterliegt keinen Einschränkungen. Es verfügt über die folgenden Erstellungsmethoden:

Wenn es vom Typ CHAR oder VARCHAR ist, kann die Länge kleiner sein als die tatsächliche Länge des Feldes, wenn es vom Typ BLOB und TEXT ist, muss die Länge angegeben werden.
CREATE INDEX indexName ON mytable(username(length));
Nach dem Login kopieren

Ändern Sie die Tabellenstruktur

Geben Sie beim Erstellen der Tabelle direkt die Syntax von
ALTER mytable ADD INDEX [indexName] ON (username(length))
Nach dem Login kopieren

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);
Nach dem Login kopieren
Löschen

Index an

Eindeutiger Index
DROP INDEX [indexName] ON mytable;
Nach dem Login kopieren

Es ähnelt dem vorherigen gewöhnlichen Index, außer dass der Wert der Indexspalte eindeutig sein muss, aber Nullwerte zulässig sind. Bei einem zusammengesetzten Index muss die Kombination der Spaltenwerte eindeutig sein. Es verfügt über die folgenden Erstellungsmethoden:

Index erstellen

Tabellenstruktur ändern
CREATE UNIQUE INDEX indexName ON mytable(username(length))
Nach dem Login kopieren

Direkt beim Erstellen der Tabelle angeben
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
Nach dem Login kopieren

Verwenden Sie den Befehl ALTER, um Indizes hinzuzufügen und zu löschen.
CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);
Nach dem Login kopieren

Es gibt vier Möglichkeiten, Indizes zur Datentabelle hinzuzufügen:

Die folgenden Beispiele fügen der Tabelle Indizes hinzu.
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。
Nach dem Login kopieren

Sie können auch die DROP-Klausel im ALTER-Befehl verwenden, um einen Index zu löschen. Versuchen Sie das folgende Beispiel, um den Index zu löschen:
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
Nach dem Login kopieren

Verwenden Sie den Befehl ALTER, um Primärschlüssel hinzuzufügen und zu löschen.
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
Nach dem Login kopieren

Der Primärschlüssel kann nur auf eine Spalte wirken, wenn Sie einen Primärschlüsselindex hinzufügen , müssen Sie sicherstellen, dass der Primärschlüssel nicht der Standardwert NOT NULL ist. Beispiele sind wie folgt:

Sie können auch den ALTER-Befehl verwenden, um den Primärschlüssel zu löschen:
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
Nach dem Login kopieren

Sie müssen beim Löschen nur den PRIMÄRSCHLÜSSEL angeben, aber beim Löschen Um einen Index zu erstellen, müssen Sie den Indexnamen kennen.
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
Nach dem Login kopieren

显示索引信息

你可以使用 SHOW INDEX 命令来列出表中的相关的索引信息。可以通过添加 \G 来格式化输出信息。

尝试以下实例:

mysql> SHOW INDEX FROM table_name\G
........
Nach dem Login kopieren

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. 免费mysql在线视频教程

3. 数据库设计那些事

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung und Beispiel-Tutorial des MySQL-Index. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!