Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verbundindex von MySQL wird nicht verwendet

Kurze Antwort:Sie könnten den Index hier effektiver nutzen, wenn Ihr Schlüssel (accountcode, calldate) statt (calldate, accountcode) wäre.

Der beste Weg, das Problem zu verstehen, besteht darin, sich mehrspaltige Schlüssel als eine Verkettung der verschiedenen Spalten vorzustellen. Wenn zum Beispiel Spalte 1 die Werte 'A,B,C,D' und Spalte 2 'W,X,Y,Z' hätte, würden Sie einen Index für 'A-W, B-X, C-Y, D-Z' usw. erstellen und alle einfügen davon in einen B-Baum.

Um eine Bereichsabfrage durchzuführen, finden Sie den ersten Nachfolger des unteren Endes des Bereichs und iterieren, bis Sie den oberen Bereich überschreiten. Das bedeutet, dass Sie den Index nur effektiv verwenden können, um eine Bereichsabfrage für ein Suffix des Schlüssels durchzuführen.