什么是自动覆盖指数?

Tam*_*lyn 9 sqlite query-optimization sql-execution-plan

EXPLAIN QUERY PLAN在SQLite 3中使用它有时会给我输出如

SEARCH TABLE staff AS s USING AUTOMATIC COVERING INDEX (is_freelancer=? AND sap=?) (~6 rows)
Run Code Online (Sandbox Code Playgroud)

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

CL.*_*CL. 11

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

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

(覆盖索引是包含要读取的所有列的索引,这意味着不需要在表中查找与索引条目对应的记录.)