Heim  >  Artikel  >  Datenbank  >  Zusammenfassung des MySQL-Index

Zusammenfassung des MySQL-Index

黄舟
黄舟Original
2017-01-20 17:17:111190Durchsuche

Index ist eine Datenstruktur, die MySQL dabei hilft, Daten effizient zu erhalten.

Das Folgende ist eine Zusammenfassung der von mir zusammengestellten Informationen und meine eigene Lernzusammenfassung.


1. Ist es wirklich notwendig, Indizes zu verwenden?


Nicht jedes Leistungsproblem kann durch die Erstellung eines Index gelöst werden. Es gibt viele andere Möglichkeiten, Leistungsprobleme zu lösen

a).

b). Datenbankparameter und Puffergröße optimieren,

c). Datenbank-Verbindungspoolgröße oder Thread-Poolgröße optimieren,

d).

f). Ordnen Sie Batch-Löschungen nachts an, um unnötige Tabellensperren usw. zu vermeiden.


2. Der Unterschied zwischen den MySQL-Indextypen Normal, Unique und Volltext


1 ein Typ

normal: stellt einen normalen Index dar

einzigartig: stellt einen eindeutigen Index dar, der keine Duplikate zulässt, wenn die Feldinformationen garantiert nicht wiederholt werden, beispielsweise wenn die ID-Nummer Wird als Index verwendet, kann er auf „unique“ oder „special“ eingestellt werden. Der Primärschlüssel „primary_key“ ist standardmäßig nicht leer und eindeutig

2. FULLTEXT ist ein Volltextindex, der zum Abrufen von Textinformationen in einem verwendet wird Artikel.

Volltext: Stellt den Index der Volltextsuche dar. VOLLTEXT eignet sich am besten für die Suche nach einem langen Artikel. Wird für relativ kurzen Text verwendet, wenn er nur aus einer oder zwei Zeilen besteht, kann auch der normale INDEX verwendet werden.

Zusammenfassend lässt sich sagen, dass die Art des Index durch die Inhaltsmerkmale des indizierten Felds bestimmt wird und „Normal“ normalerweise am häufigsten vorkommt.

Detaillierte Informationen finden Sie unter: http://blog.sina.com.cn/s/blog_887d00920100wgf3.html


3


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 welche Art von Index erstellt werden soll.

In diesem Abschnitt werden den Lesern einige Prinzipien des Indexdesigns vorgestellt. Gutes Zeug!

 1. Wählen Sie einen eindeutigen, monotonen Index

Der Wert des eindeutigen Index ist eindeutig und ein bestimmter Datensatz kann durch den Index schneller bestimmt werden. Beispielsweise ist die Mittelschul-ID 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 Sie Namen verwenden, kann es zu denselben Namen kommen, was die Abfragegeschwindigkeit verlangsamt. Monotonie bezieht sich auf die zunehmende oder abnehmende Zahl, z. B. die ID, die effizienter ist (7.mysql-Effizienz des zufälligen Primärschlüssels im Clustered-Index.note)

 2. Erstellen Sie Indizes für Felder, 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 Sortiervorgänge viel Zeit. 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 solcher Felder die Abfragegeschwindigkeit der gesamten Tabelle verbessern.

 4. Begrenzen Sie die Anzahl der Indizes

Die Anzahl der Indizes ist nicht immer 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). Es ist unvermeidbar, siehe Lösung 6.

 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 indexierenden 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.

Gute Online-Artikelreferenz: (MySQL-Präfixindex und Indexselektivität) http://www.cnblogs.com/gomysql/p/3628926.html

7 Befolgen Sie in der Reihenfolge das linke Matching-Attribut

. Die Reihenfolge, in der die Bedingungen ausgewählt werden, spielt keine Rolle, aber beim Erstellen eines gemeinsamen Index ist es wichtig. 5.4 MySQL-Index-Datenstruktur.Hinweis Abschließende Schlussfolgerung

 8. 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, werden einige der ursprünglichen Indizes möglicherweise nicht mehr benötigt. Datenbankadministratoren sollten diese Indizes regelmäßig finden und löschen, um die Auswirkungen von Indizes auf Aktualisierungsvorgänge zu verringern.

9 Je mehr Indizes, desto besser. Maximal 6

Indizes sind sicherlich möglich. Es verbessert sich Dies verringert jedoch auch die Effizienz des Einfügens und Aktualisierens, da der Index beim Einfügen oder Aktualisieren möglicherweise neu erstellt wird.

Daher muss je nach Spezifität sorgfältig darüber nachgedacht werden, wie der Index erstellt wird Situation. Es ist am besten, nicht mehr als 6 Indizes für eine Tabelle zu haben. Wenn es zu viele sind, sollten Sie überlegen, ob es notwendig ist, Indizes für einige Spalten zu erstellen, die nicht häufig verwendet werden.

Bei 10.emun oder Feldern mit nur einstelligen Ebenen muss kein Index hinzugefügt werden

Im Extremfall, bei 900.000 Daten, hat die Quelle nur zwei Werte: 0 und 1. Um den Index zu verwenden, müssen Sie zuerst die Indexdatei lesen und dann eine binäre Suche durchführen, um den Datenplattenzeiger der entsprechenden Datei zu finden Daten und lesen Sie sie dann erneut basierend auf dem Lesezeiger. Die entsprechenden Daten auf der Festplatte wirken sich auf 450.000 Ergebnissätze aus. In diesem Fall ist es schneller als der direkte vollständige Tabellenscan.

11. Der Index ist wirksam für die Gruppierung nach

Das Wesentliche ist auch ein Sortierprozess, und der Index hilft dabei, 6 zu erreichen MySQL-Index-Optimierungsstrategie.Hinweis Der dritte Punkt

Ich habe mir gerade so viele Zeilen angesehen, ohne es zu merken, dass ich mich wirklich nicht an alle auf einmal erinnern kann, aber wenn Sie sorgfältig über jeden der oben genannten Punkte nachdenken, Sie sind in Produktionsanwendungen wirklich nützlich. Wenn Sie einige Probleme finden und auf die oben genannten Punkte achten, ist dies wirklich sinnvoll. Die Zusammenfassung lautet also wie folgt:

Zusammenfassung des MySQL-Index

Hinweis: Der letztendliche Zweck der Auswahl eines Index besteht darin, die Abfrage schneller zu machen. Die oben genannten Grundsätze sind die grundlegendsten Richtlinien, Sie können sich jedoch nicht an die oben genannten Richtlinien halten.

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 die Zusammenfassung von Mysql-index. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


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