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));
Ändern Sie die Tabellenstruktur
Geben Sie beim Erstellen der Tabelle direkt die Syntax vonALTER mytable ADD INDEX [indexName] ON (username(length))
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
DROP INDEX [indexName] ON mytable;
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 ändernCREATE UNIQUE INDEX indexName ON mytable(username(length))
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
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 ,用于全文索引。
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
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);
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
显示索引信息
你可以使用 SHOW INDEX 命令来列出表中的相关的索引信息。可以通过添加 \G 来格式化输出信息。
尝试以下实例:
mysql> SHOW INDEX FROM table_name\G ........
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
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!