Die Indextypen in MySQL sind: 1. Gewöhnlicher Index; 3. Primärschlüsselindex; 5. Volltextindex; Ein normaler Index ist der einfachste Index und unterliegt keinen Einschränkungen. Ein eindeutiger Index erfordert, dass der Wert der Indexspalte eindeutig ist, aber Nullwerte sind zulässig.
Die Indextypen in MySQL sind wie folgt
Normaler Index
Einzigartiger Index
Primärschlüsselindex
Kombinierter Index
Volltextindex
(empfohlenes Tutorial: MySQL-Video-Tutorial)
1. Gewöhnlicher Index
ist der einfachste Index, es gibt keine Einschränkungen. Es verfügt über die folgenden Erstellungsmethoden:
Index direkt erstellen
CREATE INDEX index_name ON table(column(length))
Index durch Ändern der Tabellenstruktur hinzufügen
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
Erstellen Sie den Index gleichzeitig mit der Erstellung der 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)) )
Löschen Sie den Index
DROP INDEX index_name ON table
Eindeutiger Index
Ähnlich 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:
Eindeutigen Index erstellen
CREATE UNIQUE INDEX indexName ON table(column(length))
Tabellenstruktur ändern
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
Erstellen Sie direkt
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)) );
für die Tabelle 3. Der Primärschlüsselindex
ist ein spezieller eindeutiger Index. Eine Tabelle kann nur einen Primärschlüssel und keine Nullwerte haben sind erlaubt. Im Allgemeinen wird der Primärschlüsselindex gleichzeitig mit der Erstellung der Tabelle erstellt:
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) NOT NULL , PRIMARY KEY (`id`) );
4. Der zusammengesetzte Index
bezieht sich nur auf den für mehrere Felder erstellten Index wird in den Abfragebedingungen verwendet. Beim ersten Feld wird der Index 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 verglichen im Index. 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.
Es empfiehlt sich, 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) );
Ändern Sie die Tabellenstruktur und fügen Sie einen Volltextindex hinzu
ALTER TABLE article ADD FULLTEXT index_content(content)
Index direkt erstellen
CREATE FULLTEXT INDEX index_content ON article(content)
Nachteile
1. Obwohl der Index die Abfragegeschwindigkeit erheblich verbessert, wird er dies auch tun Reduzieren Sie die Geschwindigkeit der Tabellenaktualisierung, z. B. beim Einfügen und Aktualisieren der Tabelle. Denn beim Aktualisieren der Tabelle müssen nicht nur die Daten, sondern auch die Indexdatei gespeichert werden.
2. Das Erstellen von Indexdateien belegt Speicherplatz. Im Allgemeinen ist dieses Problem nicht schwerwiegend. Wenn Sie jedoch mehrere kombinierte Indizes für eine große Tabelle erstellen, wächst die Indexdatei schnell. Indizes sind nur ein Faktor, der die Effizienz verbessert. Wenn Sie eine Tabelle mit einer großen Datenmenge haben, müssen Sie Zeit damit verbringen, den besten Index zu recherchieren und zu erstellen oder Abfrageanweisungen zu optimieren.
Hinweise
Bei der Verwendung von Indizes gibt es einige Tipps und Vorsichtsmaßnahmen:
1. Der Index enthält keine Spalten mit Nullwerten
Solange eine Spalte einen Nullwert enthält, wird sie nicht in den Index aufgenommen. Solange eine Spalte im zusammengesetzten Index einen Nullwert enthält, ist diese Spalte für den zusammengesetzten Index ungültig. Daher sollten wir beim Entwerfen der Datenbank nicht zulassen, dass der Standardwert des Felds null ist.
2. Verwenden Sie den Kurzindex
, um die Zeichenfolge zu indizieren. Wenn möglich, sollten Sie eine Präfixlänge angeben. Wenn Sie beispielsweise eine Spalte mit char(255) haben und die meisten Werte innerhalb der ersten 10 oder 20 Zeichen eindeutig sind,
, indizieren Sie nicht die gesamte Spalte. Kurze Indizes verbessern nicht nur die Abfragegeschwindigkeit, sondern sparen auch Speicherplatz und E/A-Vorgänge.
3. Indexspaltensortierung
Die Abfrage verwendet nur einen Index. Wenn der Index also in der where-Klausel verwendet wurde, verwenden die Spalten in der Reihenfolge nach nicht den Index. Verwenden Sie daher keine Sortiervorgänge, wenn die Standardsortierung der Datenbank die Anforderungen erfüllen kann. Versuchen Sie, die Sortierung mehrerer Spalten nicht einzuschließen. Bei Bedarf ist es am besten, zusammengesetzte Indizes für diese Spalten zu erstellen.
4. Like-Anweisungsoperation
Im Allgemeinen wird die Verwendung einer Like-Operation nicht empfohlen. Wenn sie verwendet werden muss, ist auch die Verwendung problematisch. „%aaa%“ verwendet nicht den Index, aber „aaa%“ verwendet den Index.
Führen Sie keine Vorgänge an Spalten aus, die zu einem Indexfehler und einem vollständigen Tabellenscan führen, wie z. B.
SELECT * FROM table_name WHERE YEAR(column_name)<2017;
Verwenden Sie keine Nicht-in- und <>-Vorgänge
Das obige ist der detaillierte Inhalt vonWas sind die Indextypen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!