Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is an automatic covering index?

When using EXPLAIN QUERY PLAN in SQLite 3 it sometimes gives me output such as

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

Where does the index come from and what does it do? The table has no manually created indices on it.

like image 705
Tamlyn Avatar asked Dec 11 '13 16:12

Tamlyn


1 Answers

"Automatic" means that SQLite creates a temporary index that is used only for this query, and deleted afterwards.

This happens when the cost of creating the index is estimated to be smaller than the cost of looking up records in the table without the index.

(A covering index is an index that contains all the columns to be read, which means that the record corresponding to the index entry does not need to be looked up in the table.)

like image 160
CL. Avatar answered Sep 18 '22 02:09

CL.