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

37 Tipps für ein gutes User Interface Design (mit Bildern)

1. Versuchen Sie, ein einspaltiges statt eines meh...

So blockieren und verbieten Sie Webcrawler im Nginx-Server

Jede Website stößt normalerweise auf viele Crawle...

Details der benutzerdefinierten Vue-Anweisung

Inhaltsverzeichnis 1. Hintergrund 2. Lokale benut...

Implementierung des React Page Turner (inkl. Front- und Backend)

Inhaltsverzeichnis Frontend Entwerfen und schreib...

MySQL verwendet Aggregatfunktionen zum Abfragen einer einzelnen Tabelle

Aggregatfunktionen Wirkt auf einen Datensatz ein ...

Zusammenfassung von fünf Befehlen zum Überprüfen des Swap-Speichers in Linux

Vorwort Unter Linux können zwei Arten von Swap-Sp...

React + Threejs + Swiper vollständiger Code zum Erzielen eines Panoramaeffekts

Schauen wir uns den Panorama-Effekt an: Adresse a...

Mit CSS3 wird ein Kegelschnitt-Gradienteneffekt erzielt

Grammatik: Hintergrundbild: Kegelschnitt-Farbverl...

Interpretation von 17 Werbewirksamkeitsmaßen

1. 85 % der Anzeigen werden nicht gelesen <br ...

So erstellen Sie Komponenten in React

Inhaltsverzeichnis Vorwort Komponenteneinführung ...