2013-12-11 7 views
7

Bei der Verwendung von EXPLAIN QUERY PLAN in SQLite 3 gibt es mir manchmal Ausgang wieWas ist ein automatischer Deckungsindex?

SEARCH TABLE staff AS s USING AUTOMATIC COVERING INDEX (is_freelancer=? AND sap=?) (~6 rows) 

Wo kommt der Index kommen und was tut sie? Die Tabelle enthält keine manuell erstellten Indizes.

Antwort

9

"Automatisch" bedeutet, dass SQLite einen temporären Index erstellt, der nur für diese Abfrage verwendet und anschließend gelöscht wird.

Dies passiert, wenn die Kosten für die Erstellung des Indexes kleiner als die Kosten für das Nachschlagen von Datensätzen in der Tabelle ohne Index sind.

(A covering index ist ein Index, der alle Spalten enthält ausgelesen werden, was bedeutet, daß der Datensatz an den Indexeintrag entspricht, braucht nicht in der Tabelle nachgeschlagen werden.)