Heim  >  Artikel  >  Datenbank  >  In welchen Situationen schlägt der MySQL-Index fehl?

In welchen Situationen schlägt der MySQL-Index fehl?

青灯夜游
青灯夜游Original
2022-01-05 15:46:5557455Durchsuche

Instanzen von Indexfehlern: 1. Die Like-Abfrage beginnt mit „%“; 2. Der Index wird nicht vor und nach der or-Anweisung verwendet; 3. Der erste Spaltenindex wird nicht im kombinierten Index verwendet; „NULL“ wird für die Indexspalte verwendet. Oder „IS NOT NULL“-Operation. 5. Verwenden Sie „not“, „<>“, „!=" usw. für das Indexfeld.

In welchen Situationen schlägt der MySQL-Index fehl?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Ein Index ist eine spezielle Datenbankstruktur, die aus einer oder mehreren Spalten in der Datentabelle besteht. Sie kann verwendet werden, um Datensätze mit einem bestimmten Wert in der Datentabelle schnell abzufragen. In diesem Abschnitt werden Bedeutung, Funktion, Vor- und Nachteile von Indizes ausführlich erläutert.

Bei Indizes müssen Sie beim Abfragen von Daten nicht alle aufgezeichneten Informationen lesen, sondern nur die Indexspalten abfragen. Andernfalls liest das Datenbanksystem alle Informationen jedes Datensatzes zum Abgleich.

Der Index kann mit der phonetischen Reihenfolge des Xinhua-Wörterbuchs verglichen werden. Wenn Sie beispielsweise das Wort „ku“ nachschlagen möchten und keine Lautfolge verwenden, müssen Sie es Seite für Seite in den 400 Seiten des Wörterbuchs finden. Wenn Sie jedoch das Pinyin extrahieren, um eine phonetische Sequenz zu bilden, müssen Sie es nur direkt in der Phonetiktabelle von mehr als 10 Seiten nachschlagen. Dadurch kann viel Zeit gespart werden.

Daher kann die Verwendung von Indizes die Abfragegeschwindigkeit der Datenbank erheblich verbessern und die Leistung des Datenbanksystems effektiv verbessern.

Mehrere Situationen, in denen die Indexabfrage fehlschlägt:

1. Wenn like mit % beginnt, ist der Index ungültig; wenn das like-Präfix nicht % und das Suffix % hat, ist der Index gültig.

2. Vor und nach der or-Anweisung wird kein Index verwendet.

Wenn nur eines der linken und rechten Abfragefelder von oder ein Index ist, ist der Index ungültig. Er wird nur wirksam, wenn sowohl das linke als auch das rechte Abfragefeld von oder Indizes sind

3. Kombinierter Index. Anstatt den Index der ersten Spalte zu verwenden, ist der Index ungültig.

4. Wenn der Spaltentyp ein String ist, müssen die Daten in der Bedingung in Anführungszeichen gesetzt werden, andernfalls wird der Index nicht verwendet

Der Datentyp wird implizit konvertiert. Wenn varchar nicht in einfache Anführungszeichen gesetzt wird, wird es möglicherweise automatisch in den Typ int konvertiert, wodurch der Index ungültig wird und ein vollständiger Tabellenscan erfolgt.

5. Verwenden Sie die Operation IS NULL oder IS NOT NULL für die Indexspalte.


Indizes indizieren keine Nullwerte, daher können solche Vorgänge keine Indizes verwenden und auf andere Weise gehandhabt werden, z. B.: Beurteilen Sie bei numerischen Typen, ob sie größer als 0 sind, oder legen Sie bei Zeichenfolgentypen einen Standardwert fest und beurteilen Sie ob es dem Standardwert entspricht. (

Das ist falsch!

)

Erklärung des obigen Fehlers:Hier werde ich eine emp-Tabelle neu erstellen

Neuen Index erstellen

Index anzeigen

Führen Sie die SQL-Anweisung aus

Sie können feststellen, dass der Index verwendet wird

Zusammenfassung: Verwenden Sie die Operation IS NULL oder IS NOT NULL für die Indexspalte. Der Index schlägt nicht unbedingt fehl! ! !

6. Verwenden Sie not, <>, != im Indexfeld.

Der Ungleichheitsoperator verwendet niemals einen Index, daher führt seine Verarbeitung nur zu einem vollständigen Tabellenscan. Optimierungsmethode: Schlüssel<>0 in Schlüssel>0 oder Schlüssel<0 ändern.

7. Führen Sie Berechnungsoperationen für Indexfelder durch und verwenden Sie Funktionen für Felder. (Der Index ist emp(ename,empno,sal)). ungültig werden.

Wenn MySQL schätzt, dass die Verwendung eines vollständigen Tabellenscans schneller ist als die Verwendung eines Index, dann verwenden Sie keinen Index

[Verwandte Empfehlung:

MySQL-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonIn welchen Situationen schlägt der MySQL-Index fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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