Die Verwendung des Index durch in in MySQL: 1. Wenn die In-Abfrage dem Prinzip „am weitesten links“ entspricht, kann der Index normal verwendet werden. 2. Wenn vor der Abfrage eine Bereichsabfrage steht, wird der gemeinsame Index verwendet ungültig und es wird kein Index verwendet. 3. Wenn der Abfragewerttyp int und der Spaltentyp vachar ist, schlägt der Index fehl.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, MySQL-Version 5.7.17, Dell G3-Computer.
1. In der MySQL-Version kann der Index
+-----------+ | version() | +-----------+ | 5.7.17 | +-----------+
2 verwendet werden scheitern.
3. Die Datenmenge ist zu groß (200 W) und es gibt viele In-Bedingungen. Dies sollte vom MySQL-Optimierer beurteilt werden. Wenn die Datenmenge groß ist, ist die Indizierung für In-Abfragen möglicherweise nicht die beste. (PS: In diesem Teil muss die Beurteilung des mit MySQL gelieferten Optimierers berücksichtigt werden. Das Ausführungsprinzip des MySQL-Optimierers ist ziemlich kompliziert. Kurz gesagt, es ist die Beurteilung verschiedener Bedingungen, um die optimale Lösung auszuwählen, die MySQL für richtig hält )
Wird die Abfrage also für die zum gemeinsamen Index hinzugefügten Felder wirksam sein?
Zuallererst: Für den gemeinsamen Index müssen wir ein Konzept klären. Für den gemeinsamen Index wird die Ausführungsreihenfolge von links nach rechts abgeglichen, was der Reihenfolge nach ID, Name usw. entspricht. Das erste Feld muss in Ordnung sein. Wenn Sie den Index des zweiten Felds verwenden, müssen Sie zuerst das erste Feld verwenden und sicherstellen, dass das zweite Feld in Ordnung ist.
Zweitens: Das Präfix-Matching-Prinzip ganz links, ein sehr wichtiges Prinzip. MySQL passt immer nach rechts, bis es auf eine Bereichsabfrage trifft (>, „3“ und d = „4“, wenn (a,b,c,d ) ist eingerichtet. Für sequentielle Indizes kann d den Index nicht verwenden, da das Feld c eine Bereichsabfrage durchführt und der gemeinsame Index ungültig ist. Wenn Sie einen Index für (a, b, d, c) erstellen, ist die Reihenfolge von a, b , d kann beliebig angepasst werden. Das Ergebnis ist das gleiche wie beim obigen Konzept. Wenn die In-Abfrage jedoch normal ist, kann sie verwendet werden Vor der Abfrage schlägt der gemeinsame Index fehl. Natürlich benötigt unsere Abfrage keinen Index. Empfohlenes Lernen:
MySQL-Video-TutorialDas obige ist der detaillierte Inhalt vonWird ein Index in MySQL verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!