2013-12-11 45 views
7

當SQLite的3使用EXPLAIN QUERY PLAN有時給我的輸出如什麼是自動覆蓋指數?

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

哪裏索引來自與它有什麼作用?該表格上沒有手動創建的索引。

回答

9

「自動」表示SQLite創建的臨時索引僅用於此查詢,並在之後刪除。

當創建索引的成本估計小於在沒有索引的情況下在表中查找記錄的成本時,會發生這種情況。

(A covering index是包含所有列的索引被讀取,這意味着對應的索引項的記錄並不需要在表中進行查找。)