Analyse der MySql-Indexnutzungsstrategie

Analyse der MySql-Indexnutzungsstrategie

MySql-Index

Indexvorteile

1. Sie können die Eindeutigkeit der Daten sicherstellen, indem Sie einen eindeutigen Index oder Primärschlüsselindex erstellen.
2. Verbessern Sie die Leistung abgerufener Daten
3. Die Verbindungsbedingungen in der Tabellenverbindung können die direkte Verbindung zwischen Tabellen beschleunigen
4. Erstellen Sie Indizes. Die Verwendung von Indizes in Abfragen kann die Leistung verbessern.

Index-Nachteile

1. Das Erstellen und Verwalten von Indizes nimmt Zeit in Anspruch, die mit der Datenmenge zunimmt.
2. Indexdateien belegen physischen Speicherplatz. Zusätzlich zu dem für die Datentabelle erforderlichen physischen Speicherplatz nimmt jeder Index auch eine bestimmte Menge physischen Speicherplatzes ein.
3. Beim Einfügen, Aktualisieren oder Löschen von Daten in einer Tabelle muss der Index auch dynamisch verwaltet werden, was den Datenverwaltungsprozess verlangsamt.

(Durch das Erstellen eines Indexes wird Speicherplatz für die Indexdatei beansprucht. Normalerweise ist dieses Problem nicht allzu schwerwiegend, wenn Sie jedoch mehrere kombinierte Indizes für eine große Tabelle erstellen, wird die Indexdatei schnell größer.)

Was bei der Verwendung von Indizes zu beachten ist

1. Beschleunigen Sie die Indizierung häufig gesuchter Spalten
2. Die Eindeutigkeit der Spalte kann anhand der Primärschlüsselspalte sichergestellt werden
3. Das Hinzufügen von Indizes zu den Verbindungsbedingungen zwischen Tabellen kann die Verbindungsabfrage beschleunigen.
4. Das Hinzufügen von Indizes zu bestimmten Spalten, die häufig zum Sortieren (Order by), Gruppieren (Group by) usw. verwendet werden, kann die Sortierabfragezeit beschleunigen. (Order by allein kann keine Indizes verwenden, also sollten Sie erwägen, dem Index „where“ oder „limit“ hinzuzufügen.)
5. Erstellen Sie einen Index für das Feld nach einigen Where-Klauseln < <= > >= BETWEEN IN und wie in einigen Fällen (B-TREE)

6. Wenn Sie einen Index für das Spitznamenfeld in der Like-Anweisung erstellen, funktioniert der Index nicht, wenn die Abfrageanweisung nickname lick '%ABC%' lautet. Der Index funktioniert jedoch, wenn die Abfrageanweisung nickname lick 'ABC%' lautet.

7. Der Index enthält keine NULL-Spalten. Wenn eine Spalte NULL-Werte enthält, wird sie nicht in den Index aufgenommen. Wenn eine Spalte in einem zusammengesetzten Index NULL-Werte enthält, ist der zusammengesetzte Index ungültig. Im Allgemeinen ist ein Standardwert von 0 oder die Zeichenfolge „ “ erforderlich.

8. Verwenden Sie kurze Indizes. Wenn eines Ihrer Felder Char(32) oder int(32) ist, geben Sie beim Erstellen des Index eine Präfixlänge an, z. B. die ersten 10 Zeichen (vorausgesetzt, die meisten Werte sind eindeutig). Dann können kurze Indizes die Abfragegeschwindigkeit erhöhen, Speicherplatz sparen und E/A-Vorgänge reduzieren.

9. Führen Sie keine Operationen an Spalten durch, da dies den MySQL-Index ungültig macht und einen vollständigen Tabellenscan durchführt

10. Wählen Sie den kleineren Datentyp, desto besser. Denn normalerweise gilt: Je kleiner der Datentyp, desto weniger Speicherplatz wird auf der Festplatte, im Speicher, in der CPU und im Cache belegt und desto schneller ist die Verarbeitung.

Wann sollte kein Index erstellt werden?

1. Spalten, die selten in Abfragen verwendet werden, sollten nicht indiziert werden. Wenn jedoch Indizes erstellt werden, verringert sich die MySQL-Leistung und der Speicherplatzbedarf steigt.
2. Spalten mit sehr wenigen Daten sollten nicht indiziert werden. Beispielsweise ein Geschlechtsfeld mit 0 oder 1. In der Abfrage machen die Daten im Ergebnissatz einen großen Anteil der Datenzeilen in der Tabelle aus. MySQL muss eine große Anzahl von Zeilen scannen. Das Hinzufügen von Indizes verbessert die Effizienz nicht.
3. Spalten, die als Text-, Bild- und Bit-Datentypen definiert sind, sollten keine Indizes hinzugefügt werden.
4. Wenn die Änderungsvorgänge (UPDATE, INSERT, DELETE) der Tabelle viel umfangreicher sind als die Abrufvorgänge (SELECT), sollten Sie keinen Index erstellen. Diese beiden Vorgänge schließen sich gegenseitig aus.

Oben finden Sie eine detaillierte Analyse der MySQL-Indexnutzungsstrategie. Weitere Informationen zum MySQL-Index finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • MySQL-Lernprogramm Clustered Index
  • Absteigender Index in MySQL 8.0
  • Index-Skip-Scan in MySQL 8.0
  • Zusammenfassung mehrerer Situationen, in denen MySQL-Indizes fehlschlagen
  • Detaillierte Erläuterung des MySQL-Clusterindex und des Nicht-Clusterindex
  • Unterschied zwischen MySQL Btree-Index und Hash-Index
  • MySQL-Lösung zur funktionalen Indexoptimierung
  • Zusammenfassung einiger gängiger Schreibmethoden, die zu MySQL-Indexfehlern führen
  • Verschiedene Arten von MySQL-Indizes

<<:  Codebeispiele für allgemeine Docker-Datenvolumenvorgänge

>>:  JavaScript zum Erzielen eines einfachen Lupeneffekts

Artikel empfehlen

Zusammenfassung von 6 Methoden zur Anzeige von Linux-Protokollen

Als Backend-Programmierer haben Sie an vielen Ste...

Schreiben eines Schere-Stein-Papier-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...

MySQL 8.0 Upgrade-Erfahrung

Inhaltsverzeichnis Vorwort 1. Deinstallieren Sie ...

Beispielcode für HTML-Layered-Box-Shadow-Effekt

Schauen wir uns zunächst das Bild an: Heute werde...

Detaillierte Erläuterung der Wissenspunkte zur asynchronen Programmierung in nodejs

Einführung Weil JavaScript standardmäßig ein Thre...

Ein zeitaufwändiger Fehlerbehebungsprozess für einen Docker-Fehler

Inhaltsverzeichnis Herkunft Umweltinformationen F...

Detaillierte Erklärung zur Verwendung des Canvas-Operation-Plugins fabric.js

Fabric.js ist ein sehr nützliches Plug-In für Can...

Detaillierte Schritte zur Installation von Mysql5.7.19 mit yum auf Centos7

In der Yum-Quelle von Centos7 ist standardmäßig k...

Karusselleffekte mit JavaScript implementieren

In diesem Artikel wird der spezifische Code für J...