Analyse mehrerer Situationen, in denen der MySQL-Index fehlschlägt

Analyse mehrerer Situationen, in denen der MySQL-Index fehlschlägt

1. Prinzip des besten linken Präfixes – Wenn mehrere Spalten indiziert werden, muss das Prinzip des ganz linken Präfixes befolgt werden. Dies bedeutet, dass die Abfrage in der äußersten linken Spalte des Index beginnt und keine Spalten im Index überspringt.

Voraussetzung: Ein zusammengesetzter Index (Benutzername, Passwort, Alter) wurde der Tabelle hinzugefügt

Analyse: Der Abfrage fehlt der Benutzername und der Benutzername ganz links im zusammengesetzten Index der Abfragebedingungen fehlt, was gegen das Prinzip des besten linken Präfixes verstößt und dazu führt, dass der Index fehlschlägt und zu ALL wird, einem vollständigen Tabellenscan.

Analyse: In der Abfragebedingung fehlen Benutzername und Passwort. Der Benutzername und das Passwort ganz links im zusammengesetzten Index der Abfragebedingung fehlen, was gegen das Prinzip des besten linken Präfixes verstößt, was dazu führt, dass der Index fehlschlägt und zu ALL wird, einem vollständigen Tabellenscan.

Analyse: Diese Abfrage hat nur eine Benutzernamenbedingung. Gemäß dem Best-Left-Prefix-Prinzip kann der Index verwendet werden, allerdings nur teilweise.

2. Führen Sie keine Vorgänge (Berechnungen, Funktionen, (automatische oder manuelle) Typkonvertierungen) an der Indexspalte aus, da dies zu einem Indexfehler und einem vollständigen Tabellenscan führen würde.

Analyse: Die erste Indexspalte des Diagramms verwendet keine Funktionen, folgt dem Prinzip des linken Präfixes und kann den Index verwenden. Die zweite Abbildung verwendet eine Funktion auf der Indexspalte. Auch wenn das Prinzip des linken Präfixes befolgt wird, ist der Index immer noch ungültig.

3. Die Speicher-Engine kann die Spalten rechts von der Bereichsbedingung im Index nicht verwenden und der Index wird nach dem Bereich ungültig. (< ,> zwischen und)

Analyse: Alle Indizes in Abbildung 1 werden verwendet. In Abbildung 2 verwendet der Index Benutzername und Alter, aber der Benutzername wird mithilfe des Index abgerufen, während sich das Alter auf die Indexsortierung konzentriert. In diesem Fall ist das Alter eine Bereichssuche und der Kennwortindex ist ungültig.

4. Wenn MySQL Ungleichungen (!= oder <>) verwendet, kann der Index nicht verwendet werden, was dazu führt, dass der Index fehlschlägt.

5. Die Verwendung von is not null oder is null in MySQL führt dazu, dass der Index unbrauchbar wird

Analyse: Für die Spalte „Benutzername“ wird ein normaler Index erstellt. Die Abfrage enthält nicht null und der resultierende Index ist nicht wirksam.

6. Wenn in MySQL die Like-Abfrage mit „%“ beginnt, wird der Index ungültig und die gesamte Tabelle wird gescannt, wobei der Index abgedeckt wird.

Analyse: Für die Spalte Benutzername wird ein normaler Index angelegt und eine Abfrage mit einem Wert ausgeführt, der mit % beginnt. Dadurch wird der Index ungültig und überschrieben.

7. In MySQL ist der String-Index ungültig, wenn er nicht in einfache Anführungszeichen eingeschlossen ist. Richtige Schreibweise: select * from t_user where username = 'lujin';

8. Wenn in MySQL die Bedingung ein „oder“ enthält, wird es nicht verwendet, auch wenn die Bedingung einen Index enthält (deshalb sollten Sie versuchen, „oder“ so wenig wie möglich zu verwenden). Wenn Sie „oder“ verwenden und den Index wirksam machen möchten, können Sie in der „oder“-Bedingung nur jeder Spalte einen Index hinzufügen.

9. Wenn MySQL einen vollständigen Tabellenscan schneller als einen Index verwendet, wird der Index nicht verwendet

Zusammenfassen

Dies ist das Ende dieses Artikels über die Analyse von MySQL-Indexfehlern. Weitere relevante Inhalte zu MySQL-Indexfehlern finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Analyse mehrerer Situationen, in denen MySQL-Indizes fehlschlagen
  • Häufige Szenarien und Vermeidungsmethoden für Indexfehler in MySQL
  • Detaillierte Analyse der Situationen, in denen Datenbankindizes in MySQL fehlschlagen
  • Wird der Index durch MySQL ungültig?
  • Analyse von fünf Situationen von MySQL-Indexfehlern
  • Mehrere Methoden zur Lösung des Problems des MySQL-Fuzzy-Abfrageindexfehlers
  • Zusammenfassung mehrerer Situationen, in denen MySQL-Indizes fehlschlagen
  • Zusammenfassung einiger gängiger Schreibmethoden, die zu MySQL-Indexfehlern führen
  • Detaillierte Analyse mehrerer Situationen, in denen MySQL-Indizes fehlschlagen
  • Detaillierte Erläuterung der MySQL-Datenbankindizes und Fehlerszenarien

<<:  Verwenden Sie Smart CSS, um Stile basierend auf der Scrollposition des Benutzers anzuwenden

>>:  Docker View-Prozess, Speicher und Cup-Verbrauch

Artikel empfehlen

Übung zum Hochladen von Element-Avataren

Dieser Artikel verwendet die offizielle Element-W...

Erste Schritte mit Front-End-Vue-Unit-Tests

Inhaltsverzeichnis 1. Warum brauchen wir Unit-Tes...

Elementui exportiert Daten in XLSX- und Excel-Tabellen

Kürzlich habe ich vom Vue-Projekt erfahren und bi...

So installieren Sie die PHP7 Redis-Erweiterung auf CentOS7

Einführung Im vorherigen Artikel haben wir Redis ...

Docker installiert und führt den RabbitMQ-Beispielcode aus

Ziehen Sie das Bild: [mall@VM_0_7_centos ~]$ sudo...

Allgemeine Datumsvergleichs- und Berechnungsfunktionen in MySQL

Implementierung des Zeitvergleichs in MySql unix_...

So installieren und konfigurieren Sie den Postfix-Mailserver unter CentOS 8

Postfix ist ein kostenloser und quelloffener MTA ...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.21

Notieren Sie die Installations- und Konfiguration...

So implementieren Sie die Formularvalidierung in Vue

1. Installation und Nutzung Installieren Sie es z...