Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wissenspunkte zur Indizierung

时间把记忆冲淡
Freigeben: 2020-05-10 16:15:49
Original
150 Leute haben es durchsucht

Was ist ein Index?

Der Index ist eine Datenstruktur, die es der Speicher-Engine ermöglicht, Datensätze schnell zu finden. Man kann ihn auch als Datenverzeichnis bezeichnen. Die Indexdatei wird im B-Tree-Format gespeichert

Welche Rolle spielt der Index?

1. Indizes können den Datenabruf sowie die Gruppierung und Sortierung von Daten beschleunigen.
Indizes können die Eindeutigkeit von Daten sicherstellen.
3 Geschwindigkeit

Nachteile der Indizierung?

1. Die Erstellung und Pflege von Indizes nimmt Zeit in Anspruch und nimmt mit zunehmender Indexgröße zu.
Die Erstellung von Indizes verbraucht physischen Speicherplatz
3 erhöht Beim Löschen und Ändern muss der Index auch dynamisch verwaltet werden

Warum kann die Abfragegeschwindigkeit verbessert werden?

Hauptsächlich, weil die Effizienz der sequentiellen Suche geringer ist als die der B + Baum-Struktursuche (dies muss im Detail verstanden werden)

Indextyp?

1. Primärschlüsselindex
Primark-Schlüssel Es handelt sich um einen speziellen eindeutigen Index, der keine Nullwerte zulässt. Im Allgemeinen wird der Primärschlüsselindex gleichzeitig mit der Erstellung der Tabelle erstellt. Hinweis: Eine Tabelle kann nur einen Primärschlüssel haben.
2. Eindeutiger Index
Das Schlüsselwort unique für die eindeutige Indexeinstellung. Der Wert der eindeutigen Indexspalte muss eindeutig sein, es sind jedoch Nullwerte zulässig. Bei einem zusammengesetzten Index muss die Kombination der Spaltenwerte eindeutig sein.
3. Gewöhnlicher Index
Dies ist der einfachste Index, er unterliegt keinen Einschränkungen.
4. Zusammengesetzter Index
bedeutet, dass ein Index mehrere Spalten enthält, die hauptsächlich zur Vermeidung von Tabellenrückfragen verwendet werden

1. Fügen Sie PRIMARY KEY (primär) hinzu Schlüsselindex)


ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) ;

2. Fügen Sie UNIQUE (eindeutiger Index)

ALTER TABLE ` hinzu Tabellenname` ADD UNIQUE (`Spalte`);

3. -- 3. INDEX hinzufügen (normaler Index)

ALTER TABLE `Tabellenname` ADD INDEX Indexname (`Spalte`);

4. -- 4. FULLTEXT hinzufügen (Volltextindex)

ALTER TABLE `table_name` ADD FULLTEXT (`column`);

5. Hinzufügen Mehrspaltiger Index

ALTER TABLE `table_name` ADD INDEX index_name (`column1`, `column2`, `column3`);

Der Index kann nach der Erstellung nicht mehr geändert werden Wenn Sie den Index ändern möchten, können Sie ihn nur löschen und neu erstellen. Sie können DROP INDEX index_name ON table_name verwenden, um einen Index zu löschen.

Wichtige Punkte

Warum brauchen wir einen kombinierten Index auf Basis eines einspaltigen Indexes?

Weil MySQL nur einen der effizientesten Indizes verwendet, ohne einen kombinierten Index zu erstellen, und die Effizienz mittelmäßig ist

Was ist das Prinzip ganz links im kombinierten Index?

Der kombinierte Index Benutzername, Stadt, Alter entspricht tatsächlich der Erstellung der folgenden drei kombinierten Sätze Indizes:
1.Benutzername,Stadt,Alter; 2.Benutzername,Stadt
Warum gibt es keinen kombinierten Index wie Stadt,Alter? Dies ist auf das „ganz linke Präfix“ des MySQL-Verbundindex zurückzuführen. Das einfache Verständnis besteht darin, die Kombination nur ganz links zu beginnen. Nicht nur Abfragen, die diese drei Spalten enthalten, verwenden diesen kombinierten Index, sondern auch die folgende SQL verwendet diesen kombinierten Index:

SELECT * FROM mytable WHREE username="admin" AND city="Zhengzhou "SELECT * FROM mytable WHREE username ="admin"

Die folgenden werden nicht verwendet:

SELECT * FROM mytable WHREE age=20 AND city="Zhengzhou"SELECT * FROM mytable WHREE city="Zhengzhou"

Prinzipien zum Erstellen von Indizes:

  1. Prinzip ganz links

  2. Am besten keine Indizes für Tabellen mit kleiner Kardinalität erstellen

  3. Versuchen Sie, Spalten mit hoher Unterscheidungsfähigkeit als Indizes auszuwählen

  4. Versuchen Sie, einen erweiterten Index zu erstellen, nicht erstellen ein neuer Index.

  5. Erstellen Sie Indizes für Felder, die häufig als Abfragebedingungen, Sortierung, Gruppierung und gemeinsame Operationen verwendet werden.

  6. Begrenzen Sie die Anzahl der Indizes und tun Sie dies nicht Erstellen Sie Indizes blind

  7. Versuchen Sie, Indizes mit einer kleinen Datenmenge zu verwenden und Präfixe für die Indizierung zu verwenden

  8. Löschen Sie Indizes, die nicht mehr verwendet werden oder selten verwendet

Informationen zur Indexoptimierung:

  1. Vermeiden Sie die Verwendung von Berechnungen für Indexspalten

  2. Vermeiden Sie die Verwendung von not für Indexspalten

  3. Vermeiden Sie die Verwendung von is null und is not null für Indexspalten

  4. Befolgen Sie das Indexprinzip ganz links

  5. Sie sollten versuchen, die Verwendung des Operators != oder <> in der where-Klausel zu vermeiden, da die Engine sonst die Verwendung des Index und aufgibt Führen Sie einen vollständigen Tabellenscan durch

  6. Fuzzy-Abfragen darf kein Prozentzeichen vorangestellt werden, sonst führt es zu einem vollständigen Tabellenscan

  7. Mit oder in der where-Klausel zum Verbinden von Bedingungen führt dazu, dass die Engine die Verwendung des Index aufgibt. Bei der Durchführung eines vollständigen Tabellenscans

  8. Wenn der Spaltentyp eine Zeichenfolge ist, müssen die Daten in Anführungszeichen gesetzt werden , andernfalls wird der Index nicht verwendet

Das obige ist der detaillierte Inhalt vonWissenspunkte zur Indizierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
1
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