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

CSS -webkit-box-orient: vertikale Eigenschaft nach der Kompilierung verloren

1. Ursache Die Anforderung besteht darin, zwei Ze...

So verwenden Sie die Clipboard-API in JS

Inhaltsverzeichnis 1. Document.execCommand()-Meth...

Responsive Webdesign lernen (2) — Können Videos responsiv gemacht werden?

Rezension der vorherigen Folge: Gestern haben wir...

Docker-Installationstutorial: Erste Schritte (Anfängerausgabe)

Doccer-Einführung: Docker ist eine Container-bezo...

Beste Tools zum Erstellen und Bearbeiten von Screenshots unter Linux

Als ich mein primäres Betriebssystem von Windows ...

Vergleichstabelle für HTML-Sondersymbole auf Webseiten

Sondersymbole Benannte Entitäten Dezimalkodierung...

Zusammenfassung der 10 gängigen HBase-Betriebs- und Wartungstools

Zusammenfassung: HBase verfügt über zahlreiche Be...

Detaillierte Erläuterung des zeitgesteuerten Protokollschneidens von Nginx

Vorwort Standardmäßig werden Nginx-Protokolle in ...