什么是自动覆盖指数?

时间:2013-12-11 16:33:27

标签: sqlite query-optimization sql-execution-plan

在SQLite 3中使用EXPLAIN QUERY PLAN时,它有时会为我提供输出,例如

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

索引来自何处以及它的作用是什么?该表没有手动创建的索引。

1 个答案:

答案 0 :(得分:11)

“自动”表示SQLite创建一个仅用于此查询的临时索引,并在之后删除。

当估计创建索引的成本小于在没有索引的情况下查找表中记录的成本时,会发生这种情况。

(A covering index是一个包含要读取的所有列的索引,这意味着不需要在表中查找与索引条目对应的记录。)