Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen MySQL-Indizes?
Unterschiede: 1. Der Indexspaltenwert des eindeutigen Index muss eindeutig sein und Nullwerte sind zulässig. 2. Der Indexwert des Primärschlüsselindex muss eindeutig sein, Nullwerte sind jedoch nicht zulässig Der kombinierte Index kann nur erstellt werden, wenn der Index in der Abfragebedingung verwendet wird. Der Index wird nur verwendet, wenn das erste Feld eingegeben wird. 4. Volltextindizes können nur in Tabellen verwendet werden, die die Myisam-Speicher-Engine verwenden.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
MySQL-Indextyp:
Primärschlüsselindex: Der Unterschied zum eindeutigen Index besteht darin, dass dieser Index automatisch erstellt wird, wenn der Primärschlüssel erstellt wird .
Normaler Index: Der einfachste Index, keine besonderen Einschränkungen.
Einzigartiger Index: Der Unterschied zu einem normalen Index besteht darin, dass der Wert der Indexspalte eindeutig sein muss, aber Nullwerte haben kann.
Volltextindex: Kann nur in Tabellen mit der Myisam-Speicher-Engine für größere Datenspalten verwendet werden.
Kombinierter Index: bezieht sich auf einen Index, der für mehrere Felder erstellt wurde. Der Index wird nur verwendet, wenn das erste Feld beim Erstellen des Index in den Abfragebedingungen verwendet wird. Wenn Sie kombinierte Indizes verwenden, befolgen Sie den Präfixsatz ganz links
Beispiele sind wie folgt:
1 Der gewöhnliche Index
ist der einfachste Index und unterliegt keinen Einschränkungen. Es verfügt über die folgenden Erstellungsmethoden:
(1) Erstellen Sie direkt einen Index
CREATE INDEX index_name ON table(column(length))
(2) Fügen Sie einen Index hinzu, indem Sie die Tabellenstruktur ändern
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
(3) Erstellen Sie gleichzeitig einen Index beim Erstellen einer Tabelle
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), INDEX index_name (title(length)) )
(4) Löschen Sie einen Index
DROP INDEX index_name ON table
2. Der eindeutige Index
ähnelt dem vorherigen normalen 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:
(1) Erstellen Sie einen eindeutigen Index
CREATE UNIQUE INDEX indexName ON table(column(length))
(2) Ändern Sie die Tabellenstruktur
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
(3) Geben Sie
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , UNIQUE indexName (title(length)) );
direkt beim Erstellen der Tabelle an 3. Der Primärschlüsselindex
ist ein spezieller eindeutiger Index. Eine Tabelle kann nur einen Primärschlüssel haben und es sind keine Nullwerte zulässig. Im Allgemeinen wird der Primärschlüsselindex gleichzeitig beim Erstellen der Tabelle erstellt:
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) NOT NULL , PRIMARY KEY (`id`) );
4 Der kombinierte Index
bezieht sich auf einen Index, der für mehrere Felder erstellt wird Der Index wird in den Abfragebedingungen verwendet. Wenn Sie kombinierte Indizes verwenden, befolgen Sie den Präfixsatz ganz links
ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);
5. Der Volltextindex
wird hauptsächlich zum Suchen von Schlüsselwörtern im Text verwendet und nicht direkt mit Werten im Index verglichen. Der Volltextindex unterscheidet sich stark von anderen Indizes. Er ähnelt eher einer Suchmaschine als einem einfachen Parameterabgleich der where-Anweisung. Der Volltextindex wird mit der Match-gegen-Operation anstelle der allgemeinen Where-Anweisung plus Like verwendet. Es kann zum Erstellen einer Tabelle, zum Ändern einer Tabelle und zum Erstellen eines Index verwendet werden. Derzeit können jedoch nur Volltextindizes für char-, varchar- und text-Spalten erstellt werden. Es ist erwähnenswert, dass es bei großen Datenmengen besser ist, die Daten in eine Tabelle ohne globalen Index einzufügen und dann mit CREATE index einen Volltextindex zu erstellen, als zuerst einen Volltext für eine Tabelle zu erstellen und dann den Index zu schreiben Daten. Die Geschwindigkeit ist viel schneller.
(1) Es ist geeignet, beim Erstellen einer Tabelle einen Volltextindex hinzuzufügen
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (content) );
(2) Ändern Sie die Tabellenstruktur, um einen Volltextindex hinzuzufügen
ALTER TABLE article ADD FULLTEXT index_content(content)
(3) Erstellen Sie direkt einen Index
CREATE FULLTEXT INDEX index_content ON article(content)
Empfohlen Lernen: MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen MySQL-Indizes?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!