Im Folgenden finden Sie den Text aus MySQL Documentation:Wie funktioniert die Indexierung, um MIN() oder MAX() für eine bestimmte indizierte Spalte zu finden und eine Tabelle im folgenden Szenario zu sortieren?
- Um die
MIN()
oderMAX()
Wert für eine bestimmte indizierte Spalte key_col zu finden. Dies wird durch einen Präprozessor optimiert, der prüft, ob Sie verwenden WHERE key_part_N = konstant auf alle wichtigen Teile, die vor key_col in den Index auf. In diesem Fall führt MySQL einen einzelnen Schlüssel sucht für jedeMIN()
oderMAX()
Ausdruck und ersetzt sie durch eine Konstante. Wenn alle Ausdrücke durch Konstanten ersetzt werden, wird die Abfrage sofort zurückgegeben. Zum Beispiel:
SELECT MIN(key_part2),MAX(key_part2)
FROM tbl_name WHERE key_part1=10;
zu einer Tabelle, wenn die Sortier- oder Gruppierungs zu sortieren oder Gruppe auf einem äußersten linken Präfix einen verwendbaren Index (zum Beispiel ORDER BY key_part1 erfolgt , key_part2). Wenn alle wichtigen Teile von
DESC
gefolgt werden, wird der Schlüssel in umgekehrte Reihenfolge gelesen.In einigen Fällen kann eine Abfrage optimiert werden, um Werte ohne Abfragen der Datenzeilen abzurufen. (Ein Index, der alle erforderlichen Ergebnisse für eine Abfrage bereitstellt, wird als abdeckender Index bezeichnet.) Wenn eine Abfrage aus Tabellenspalten verwendet, die in einem Index enthalten sind, können die ausgewählten Werte aus dem Indexbaum abgerufen werden Geschwindigkeit:
SELECT key_part3 FROM tbl_name
WHERE key_part1=1
ich bin von den MySQL Documentation nicht alle in der Lage, diese Punkte und den entsprechenden Code zu verstehen.
Jemand bitte machen Sie die Dinge einfach, um die Dinge zu klären, um mich zu verstehen.
ich nicht gefragt werde, was Indizierung und wie funktioniert, etc. etc.
Ich möchte nur verstehen, was diese Sätze versuchen, den Code zu sagen, und was passiert da draußen in?
Was sind key_par_N und was ist der Zweck, sie hier zu verwenden?
Was bedeutet eigentlich der Begriff Schlüsselteil in diesem Zusammenhang?
Was von allen wichtigen Teile bedeutet, die vor key_col auftreten im Index?
Wo ist die Spalte key_col von denen wir angeblich MIN()
und MAX()
Werte (Siehe die erste Zeile Fein: Um die MIN()
oder MAX()
Wert für eine bestimmte indizierte Spalte key_col zu finden.)
Jemand bitte machen Sie mir alles klar.
Hinweis: Ich habe bereits this Frage gesehen, die die gleiche Sache verlangt, aber es hat eine verallgemeinerte Antwort erhalten, die nicht spezifisch für die Erklärung und den Code ist, der im Handbuch gegeben wird. Also stelle ich diese Frage, um eine präzise und spezifische Antwort zu bekommen. Also, bitte markieren Sie meine Frage nicht doppelt.
Danke für die auf den Punkt Antwort. Machen Sie mir einfach den Satz "Alle Elemente in diesem Teilbaum sind nach key_part2 organisiert, was ein Min() oder Max() sehr effizient macht". In der ganzen Antwort kann ich diesen einzelnen Satz nur nicht verstehen. Bitte mach es klar. Noch einmal vielen Dank. Auf deine Antwort wartend. – SerialKisser
@SerialKisser, nachdem ich es wieder gelesen habe, war dieser Teil meiner Beschreibung etwas vereinfacht und ungenau. Grundsätzlich möchte ich sagen, dass in einem Baum, der nach Schlüsseln (Schlüssel_Teil1, Schlüssel_Teil2) organisiert ist, nach allen Elementen gesucht werden kann, wobei Schlüssel_Teil1 = Konstant ist und die resultierenden Elemente nach SchlüsselTeil2 geordnet sind. – SaiBot