Heim > Datenbank > MySQL-Tutorial > Hauptteil

Einführung in Methoden zum Anzeigen, Erstellen und Löschen von Indizes in MySQL

黄舟
Freigeben: 2017-12-06 10:33:04
Original
1925 Leute haben es durchsucht

Ich glaube, dass sich jeder in der Entwicklung mit MySQL befassen wird. In diesem Artikel wird hauptsächlich die Methode zum Anzeigen, Erstellen und Löschen von Indizes in MySQL vorgestellt und MySQL im Detail analysiert Beispiele zur Rolle von Indizes sowie zugehöriger Implementierungsfähigkeiten zum Anzeigen, Erstellen und Löschen von Indizes!

Die Beispiele in diesem Artikel beschreiben, wie Sie Indizes in MySQL anzeigen, erstellen und löschen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

1. Indexfunktion

In der Indexspalte verwendet die Datenbank zusätzlich zur oben erwähnten geordneten Suche verschiedene schnelle Positionierungstechnologien, um die Effizienz der

Abfrage erheblich zu verbessern. Insbesondere wenn die Datenmenge sehr groß ist und die Abfrage mehrere Tabellen umfasst, kann die Verwendung von Indizes die Abfrage oft um ein Vielfaches beschleunigen.

Zum Beispiel gibt es drei nicht indizierte Tabellen t1, t2 und t3, die jeweils nur die Spalten c1, c2 und c3 enthalten. Jede Tabelle enthält 1000 Datenzeilen, die sich auf den Wert von 1 bis 1000 beziehen . Die Suche nach Zeilen mit gleichen Werten lautet wie folgt.

SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
Nach dem Login kopieren
Das Ergebnis dieser Abfrage sollte 1000 Zeilen sein, wobei jede Zeile 3 gleiche Werte enthält. Um diese Abfrage ohne Index zu verarbeiten, müssen Sie nach allen Kombinationen der drei Tabellen suchen, um die Zeilen zu erhalten, die mit der

WHERE-Klausel übereinstimmen. Die Anzahl der möglichen Kombinationen beträgt 1000×1000×1000 (Milliarden), daher wird die Abfrage offensichtlich sehr langsam sein.

Wenn jede Tabelle indiziert ist, kann der Abfrageprozess erheblich beschleunigt werden. Die Abfrageverarbeitung mithilfe von Indizes erfolgt wie folgt.

(1) Wählen Sie die erste Zeile aus Tabelle t1 aus, um die in dieser Zeile enthaltenen Daten anzuzeigen.

(2) Verwenden Sie den Index in Tabelle t2, um direkt die Zeile in t2 zu finden, die dem Wert von t1 entspricht. Suchen Sie auf ähnliche Weise mithilfe des Index für Tabelle t3 direkt die Zeile in t3, die mit dem Wert aus t1 übereinstimmt.
(3) Scannen Sie die nächste Zeile der Tabelle t1 und wiederholen Sie den vorherigen Vorgang, bis alle Zeilen in t1 durchlaufen sind.

In diesem Fall wird immer noch ein vollständiger Scan für Tabelle t1 durchgeführt, es können jedoch Indexsuchen für die Tabellen t2 und t3 durchgeführt werden, um die Zeilen in diesen Tabellen direkt abzurufen, was eine Million Mal schneller ist als ohne Indizes .

Mithilfe von Indizes beschleunigt MySQL die
Suche nach Zeilen, deren WHERE-Klausel die Bedingung erfüllt, und bei der Durchführung von Join-Abfragen für mehrere Tabellen beschleunigt es den Abgleich von Zeilen in anderen Tabellen, wenn Joins durchgeführt werden.

2. Erstellen Sie einen Index

Sie können einen Index erstellen, wenn Sie die CREATE TABLE-Anweisung ausführen, oder Sie können CREATE INDEX oder ALTER TABLE allein verwenden, um einen Index hinzuzufügen der Tisch.

1. ALTER TABLE

ALTER TABLE wird verwendet, um einen normalen Index, einen UNIQUE-Index oder einen PRIMARY KEY-Index zu erstellen.

ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
Nach dem Login kopieren
Wobei Tabellenname der Name der zu indizierenden Tabelle ist, gibt Spaltenliste an, welche Spalten indiziert werden sollen. Wenn mehrere Spalten vorhanden sind, trennen Sie diese durch Kommas. Der Indexname index_name ist optional. MySQL weist standardmäßig einen Namen basierend auf der ersten Indexspalte zu. Darüber hinaus ermöglicht ALTER TABLE die Änderung mehrerer Tabellen in einer einzigen Anweisung, sodass mehrere Indizes gleichzeitig erstellt werden können.

2. CREATE INDEX

CREATE INDEX kann der Tabelle einen normalen Index oder einen UNIQUE-Index hinzufügen.

CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)
Nach dem Login kopieren
Tabellenname, Indexname und Spaltenliste haben dieselbe Bedeutung wie in der ALTER TABLE-Anweisung, und der Indexname ist nicht optional. Darüber hinaus können Sie die CREATE INDEX-Anweisung nicht zum Erstellen eines PRIMARY KEY-Index verwenden.

3. Indextyp

Beim Erstellen eines Index können Sie angeben, ob der Index doppelte Werte enthalten darf. Wenn nicht enthalten, sollte der Index als PRIMARY KEY- oder UNIQUE-Index erstellt werden. Bei einem einspaltigen eindeutigen Index wird dadurch garantiert, dass die einzelne Spalte keine doppelten Werte enthält. Bei mehrspaltigen eindeutigen Indizes ist gewährleistet, dass die Kombination mehrerer Werte nicht wiederholt wird.

PRIMARY KEY-Index und UNIQUE-Index sind sehr ähnlich. Tatsächlich ist ein PRIMARY KEY-Index nur ein UNIQUE-Index mit dem Namen PRIMARY. Das bedeutet, dass eine Tabelle nur einen PRIMARY KEY enthalten kann, da es unmöglich ist, zwei Indizes mit demselben Namen in einer Tabelle zu haben.

Die folgende SQL-Anweisung fügt der Students-Tabelle einen PRIMARY KEY-Index auf sid hinzu.

Der Code lautet wie folgt:

ALTER TABLE students ADD PRIMARY KEY (sid)
Nach dem Login kopieren

4. Index löschen

Sie können die Anweisung ALTER TABLE oder DROP INDEX verwenden Index löschen. Ähnlich wie die CREATE INDEX-Anweisung kann DROP INDEX als Anweisung innerhalb von ALTER TABLE verarbeitet werden. Die Syntax lautet wie folgt.

DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
Nach dem Login kopieren
Unter diesen sind die ersten beiden Anweisungen gleichwertig und der Index index_name in table_name wird gelöscht.

Die dritte Anweisung wird nur beim Löschen des PRIMARY KEY-Index verwendet, da eine Tabelle nur einen PRIMARY KEY-Index haben kann und daher kein Indexname angegeben werden muss. Wenn kein PRIMARY KEY-Index erstellt wird, die Tabelle jedoch über einen oder mehrere UNIQUE-Indizes verfügt, löscht MySQL den ersten UNIQUE-Index.
Wenn eine Spalte aus einer Tabelle gelöscht wird, wirkt sich dies auf den Index aus. Wenn bei einem mehrspaltigen Index eine der Spalten gelöscht wird, wird die Spalte auch aus dem Index gelöscht. Wenn Sie alle Spalten löschen, aus denen der Index besteht, wird der gesamte Index gelöscht.

5. Index anzeigen

mysql> show index from tblname;
mysql> show keys from tblname;
Nach dem Login kopieren

· Table
表的名称。
· Non_unique
如果索引不能包括重复词,则为0。如果可以,则为1。
· Key_name
索引的名称。
· Seq_in_index
索引中的列序列号,从1开始。
· Column_name
列名称。
· Collation
列以什么方式存储在索引中。在MySQL中,有值‘A'(升序)或NULL(无分类)。
· Cardinality
索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。
· Sub_part
如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
· Packed
指示关键字如何被压缩。如果没有被压缩,则为NULL。
· Null
如果列含有NULL,则含有YES。如果没有,则该列含有NO。
· Index_type
用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
· Comment

总结:

通过本文的详细学习,相信有很多小伙伴对MySQL实现查看与创建以及删除索引的方法有了进一步的了解,希望对你有所帮助!

相关推荐:

MySQL如何创建和删除索引?

MySQL创建索引、重建索引、查询索引、删除索引

mysql建立索引删除索引很慢的解决

Das obige ist der detaillierte Inhalt vonEinführung in Methoden zum Anzeigen, Erstellen und Löschen von Indizes in MySQL. 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