Heim  >  Artikel  >  Datenbank  >  Welche Techniken gibt es zum Erstellen von Indizes in MySQL?

Welche Techniken gibt es zum Erstellen von Indizes in MySQL?

(*-*)浩
(*-*)浩Original
2019-05-09 13:46:324239Durchsuche

MySQL-Indexerstellungsfähigkeiten: 1. Erstellen Sie einen Index für die Primärschlüsselspalte. 2. Erstellen Sie einen Index für die Spalten, die häufig sortiert, gruppiert und verknüpft werden müssen müssen häufig als Abfragebedingungen verwendet werden. 4. Versuchen Sie, Spalten mit hoher Unterscheidung als Indizes auszuwählen. 5. Erstellen Sie Indizes für Spalten, die nicht an Berechnungen teilnehmen.

Welche Techniken gibt es zum Erstellen von Indizes in MySQL?

In diesem Artikel werden einige Spalten vorgestellt, die sich besser zum Erstellen von Indizes eignen. Natürlich gibt es auch einige Situationen, auf die beim Erstellen von Indizes geachtet werden muss .

Empfohlene Kurse: MySQL-Tutorial

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. Beispielsweise ist die Mittelschul-ID in der Schülertabelle ein eindeutiges Feld. Durch die Einrichtung eines eindeutigen Index für dieses Feld können die Informationen eines bestimmten Schülers schnell ermittelt werden. Wenn Sie Namen verwenden, kann es zu denselben Namen kommen, was die Abfragegeschwindigkeit verlangsamt.

2. Erstellen Sie Indizes für Felder (Spalten), die häufig Sortier-, Gruppierungs- und Vereinigungsoperationen erfordern.

Für Felder, die häufig Operationen wie ORDER BY, GROUP BY, DISTINCT und UNION erfordern, verschwenden Sortieroperationen a viel Zeit. Wenn Sie es indizieren, können Sie den Sortiervorgang effektiv vermeiden.

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

Wenn ein Feld häufig als Abfragebedingungen verwendet wird, wirkt sich die Abfragegeschwindigkeit dieses Felds auf die Abfragegeschwindigkeit der gesamten Tabelle aus. Daher kann die Indizierung solcher Felder 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. Wenn die Tabelle geändert wird, 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 eine Volltextsuche nach einem Feld vom Typ CHAR(100) definitiv mehr Zeit in Anspruch nehmen als nach einem Feld vom Typ CHAR(10).

6. Versuchen Sie, Präfixe zum Indexieren 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. Versuchen Sie, Spalten mit hoher Unterscheidung als Indizes auszuwählen

Die Formel für die Unterscheidung lautet count(distinct col)/count(*), was bedeutet, dass die Felder sind Nicht wiederholtes Verhältnis: Je größer das Verhältnis, desto weniger Datensätze werden von uns gescannt, während einige Status- und Geschlechtsfelder angesichts großer Datenmengen möglicherweise eine Unterscheidung von 0 haben Hat das Verhältnis einen empirischen Wert? Verschiedene Verwendungsszenarien erschweren die Bestimmung dieses Werts. Im Allgemeinen erfordern wir, dass die Felder, die verbunden werden müssen, über 0,1 liegen, d. h. pro Scan werden durchschnittlich 10 Datensätze gescannt Die Indexspalte kann nicht an der Berechnung teilnehmen und muss „sauber“ gehalten werden.

Zum Beispiel kann from_unixtime(create_time) = '2014-05-29' den Index nicht verwenden. Der Grund ist sehr Einfach. Der b+-Baum speichert alle Feldwerte in der Datentabelle, aber beim Abrufen müssen Sie Funktionen auf alle zu vergleichenden Elemente anwenden, was offensichtlich zu kostspielig ist. Daher sollte die Anweisung wie folgt geschrieben werden: create_time = unix_timestamp('2014-05-29');

9 Erweitern Sie den Index so weit wie möglich, erstellen Sie keinen neuen Index

Zum Beispiel gibt es bereits einen Index von a in der Tabelle. Jetzt möchten Sie den Index von (a, b) hinzufügen, dann müssen Sie nur den ursprünglichen Index ändern Hinweis: Der ultimative Zweck von Durch die Auswahl des Index soll die Abfrage beschleunigt werden. Die oben genannten Grundsätze sind die grundlegendsten Richtlinien, Sie können sich jedoch nicht an die oben genannten Richtlinien halten. Die Leser sollten in ihrem zukünftigen Studium und ihrer Arbeit weiterhin üben. Analysieren und beurteilen Sie anhand der tatsächlichen Situation der Anwendung und wählen Sie die am besten geeignete Indizierungsmethode aus.

Das obige ist der detaillierte Inhalt vonWelche Techniken gibt es zum Erstellen von Indizes in MySQL?. 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