Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was sind die Indextypen in MySQL?

清浅
Freigeben: 2020-09-14 14:57:31
Original
72764 Leute haben es durchsucht

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.

Was sind die Indextypen in MySQL?

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))
Nach dem Login kopieren

Index durch Ändern der Tabellenstruktur hinzufügen

ALTER TABLE table_name ADD INDEX index_name ON (column(length))
Nach dem Login kopieren

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))
)
Nach dem Login kopieren

Löschen Sie den Index

DROP INDEX index_name ON table
Nach dem Login kopieren

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))
Nach dem Login kopieren

Tabellenstruktur ändern

ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
Nach dem Login kopieren

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))
);
Nach dem Login kopieren

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`)
);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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)
);
Nach dem Login kopieren

Ändern Sie die Tabellenstruktur und fügen Sie einen Volltextindex hinzu

ALTER TABLE article ADD FULLTEXT index_content(content)
Nach dem Login kopieren

Index direkt erstellen

CREATE FULLTEXT INDEX index_content ON article(content)
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage