Heim  >  Artikel  >  Datenbank  >  Eine kurze Einführung in die Indexdesignprinzipien von MySQL und die Unterschiede zwischen gängigen Indizes

Eine kurze Einführung in die Indexdesignprinzipien von MySQL und die Unterschiede zwischen gängigen Indizes

黄舟
黄舟Original
2017-03-24 13:13:201710Durchsuche

Der unten stehende Herausgeber wird Ihnen eine kurze Diskussion über die Index--Designprinzipien von MySQL und die Unterschiede zwischen gängigen Indizes geben. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen.

Indexdefinition: Es handelt sich um eine separate Datenbankstruktur, die auf der Festplatte gespeichert ist und Referenzzeiger auf alle Datensätze in der Datentabelle enthält.

Gestaltungsprinzipien für Datenbankindizes:

Um die Verwendung von Indizes effizienter zu gestalten, müssen Sie beim Erstellen eines Index berücksichtigen, für welche Felder der Index erstellt werden soll und welchen Typ er haben soll Index erstellen.
Was sind also die Prinzipien des Indexdesigns?

1. Wählen Sie den eindeutigen Index

Der Wert des eindeutigen Index ist eindeutig und ein bestimmter Datensatz kann durch den Index schneller ermittelt werden.
Zum Beispiel ist die Nummer der Mittelschule in der Schülertabelle ein eindeutiges Feld. Durch die Einrichtung eines eindeutigen Indexes für dieses Feld können die Informationen eines bestimmten Schülers schnell ermittelt werden.
Wenn Namen verwendet werden, kann es vorkommen, dass der Name identisch ist, was die Abfragegeschwindigkeit verlangsamt.

2. Erstellen Sie Indizes für Felder, die häufig eine Sortierung, Gruppierung und Vereinigungsoperationen erfordern.

Felder, die häufig Operationen wie ORDER BY, GROUP BY, DISTINCT und UNION, die Sortierung, erfordern Der Betrieb wird viel Zeit verschwenden.
Wenn Sie es indizieren, können Sie den Sortiervorgang effektiv vermeiden.

3. Erstellen Sie Indizes für Felder, die häufig als Abfragebedingungen verwendet werden.

Wenn ein Feld häufig als Abfragebedingung verwendet wird, wirkt sich die Abfragegeschwindigkeit dieses Felds auf die Abfragegeschwindigkeit der gesamten Tabelle aus. Daher kann die
Indizierung eines solchen Felds die Abfragegeschwindigkeit der gesamten Tabelle verbessern.

4. Begrenzen Sie die Anzahl der Indizes

Je mehr Indizes, desto besser. Jeder Index benötigt Speicherplatz. Je mehr Indizes vorhanden sind, desto mehr Speicherplatz ist erforderlich.
Beim Ändern der Tabelle ist es mühsam, den Index wiederherzustellen und zu aktualisieren. Je mehr Indizes vorhanden sind, desto zeitaufwendiger wird die Aktualisierung der Tabelle.

5. Versuchen Sie, einen Index mit einer kleinen Datenmenge zu verwenden

Wenn der Indexwert sehr lang ist, wird die Abfragegeschwindigkeit beeinträchtigt. Beispielsweise wird der Volltextabruf
für ein Feld vom Typ CHAR (100) definitiv mehr Zeit in Anspruch nehmen als für ein Feld vom Typ CHAR (10).

6. Versuchen Sie, Präfixe zum Indizieren zu verwenden

Wenn der Wert des Indexfelds sehr lang ist, verwenden Sie am besten das Präfix des zu indizierenden Werts. Beispielsweise ist die Volltextsuche nach Feldern vom Typ TEXT und BLOG
Zeitverschwendung. Wenn nur die ersten paar Zeichen des Feldes abgerufen werden, kann die Abrufgeschwindigkeit verbessert werden.

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

Nachdem die Daten in der Tabelle stark aktualisiert wurden oder die Art und Weise der Datenverwendung geändert wurde, sind einige der ursprünglichen Indizes möglicherweise nicht mehr vorhanden benötigt werden. Datenbankadministratoren sollten diese Indizes regelmäßig finden und löschen, um die Auswirkungen der Indizes auf Aktualisierungsvorgänge zu verringern.

8. Kleine Tabellen sollten nicht indiziert werden; wenn sie eine große Anzahl von Spalten enthalten und nicht nach Nicht-Null-Werten gesucht werden müssen, können Sie in Erwägung ziehen, keinen Index zu erstellen

- --------- ------------

MySQL-IndexVerwandte Tipps:

1. Felder, die häufig zum Filtern von Datensätzen verwendet werden.

1. Primärschlüsselfeld, das System erstellt automatisch den Index des Primärschlüsselfelds

3 . Fremdschlüsseleinschränkung Felder, die als Fremdschlüssel definiert sind;

Felder, die zum Verbinden von Tabellen in Abfragen verwendet werden;

Felder, die häufig als Grundlage für die Sortierung verwendet werden (Reihenfolge nach Feldern);

2. Indizes belegen Speicherplatz und das Erstellen unnötiger Indizes verursacht nur Verschwendung.

3. Bei der Erstellung des Index muss die Art und Weise berücksichtigt werden, wie die Daten verarbeitet werden. 1. Der Inhalt ändert sich selten und wird oft abgefragt, daher macht es nichts, wenn Sie ein paar weitere Indizes dafür erstellen

2 häufig und routinemäßig müssen Sie beispielsweise die erforderlichen Indizes sorgfältig erstellen;

Der Unterschied zwischen Primärschlüssel und eindeutigem Schlüssel1 . Als primär Die Domäne/Domänengruppe des Schlüssels darf nicht null sein. Und Unique Key kann.

2. Es kann nur einen Primärschlüssel in einer Tabelle geben und es können mehrere eindeutige Schlüssel gleichzeitig vorhanden sein.

Der größere Unterschied besteht im logischen Design. Der Primärschlüssel wird im Allgemeinen als Datensatzkennung im logischen Design verwendet. Dies ist auch die ursprüngliche Absicht der Festlegung des
Primärschlüssels, während der eindeutige Schlüssel nur die Einzigartigkeit des Datensatzes sicherstellen soll Domäne/Domänengruppe.

5. Zusammengesetzter Index und Einzelindex

Zusammengesetzter Index bezieht sich auf einen Mehrfeld-Joint-Index. Diese Felder werden bei der Abfrage häufig kombiniert die Bedingungen noch einmal

Der eindeutige Index wird hauptsächlich durch die Primärschlüssel-ID indiziert, und die Reihenfolge der Speicherstruktur stimmt mit der physischen Struktur überein

Zum Beispiel: Erstellen Sie eine Index-IDX für tbl(a,b )

Sortieren Sie zuerst nach a und a nach b.

können Sie diesen Index verwenden. Wenn Sie jedoch nur b markieren, hilft Ihnen der Index nicht viel . .Es kann möglich sein, zur Suche zu springen.

--------------------------------- -------- -------

Indizes hinzufügen und löschen:

1. Der Primärschlüssel der Tabelle, Fremdschlüssel müssen Indizes haben;

2. Tabellen mit einem Datenvolumen von mehr als 3 werden oft mit anderen Tabellen verbunden, bevor Indizes für die Felder erstellt werden

4. Felder, die häufig in der

Where-Klausel

vorkommen, sollten indiziert werden ; Indizes sollten auf Feldern mit hoher Selektivität aufgebaut werden.

6. Bei großen Textfeldern sollten keine Indizes erstellt werden ;

7. Der zusammengesetzte Index erfordert eine sorgfältige Analyse. Versuchen Sie stattdessen, das Hauptspaltenfeld im zusammengesetzten Index auszuwählen ein Feld mit besserer Selektivität;

B. Erscheinen mehrere Felder eines zusammengesetzten Index oft gleichzeitig in der Where-Klausel? Gibt es wenige oder keine Einzelfeldabfragen? Wenn ja, können Sie einen zusammengesetzten Index erstellen. Andernfalls sollten Sie einen Einzelfeldindex in Betracht ziehen Indizes;

D. Wenn der zusammengesetzte Index mehr als 3 Felder enthält, denken Sie sorgfältig darüber nach, die Anzahl der zusammengesetzten Felder zu reduzieren.

E Diese zusammengesetzten Indizes für Felder können im Allgemeinen gelöscht werden.

8 Erstellen Sie nicht zu viele Indizes für Tabellen, die häufig Datenoperationen ausführen.

9 negative Auswirkungen;

Die oben genannten sind einige häufige Urteile bei der Erstellung von Indizes.

Kurz gesagt, die Erstellung von Indizes muss vorsichtig sein, und die Notwendigkeit jedes Indexes sollte sorgfältig analysiert werden und es muss eine Grundlage für die Erstellung vorhanden sein. Denn zu viele Indizes und unzureichende oder falsche Indizes wirken sich nicht positiv auf die Leistung aus: Jeder für die Tabelle erstellte Index erhöht den Speicheraufwand, und der Index erhöht auch den Verarbeitungsaufwand für Einfüge-, Lösch- und Aktualisierungsvorgänge. Darüber hinaus sind zu viele zusammengesetzte Indizes im Allgemeinen wertlos, wenn Einzelfeldindizes vorhanden sind. Im Gegenteil, sie verringern auch die Leistung beim Hinzufügen und Löschen von Daten, insbesondere bei häufig aktualisierten Tabellen, und die negativen Auswirkungen sind noch größer

Das obige ist der detaillierte Inhalt vonEine kurze Einführung in die Indexdesignprinzipien von MySQL und die Unterschiede zwischen gängigen Indizes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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