2013-12-11 17 views
7

Quando si utilizza EXPLAIN QUERY PLAN in SQLite 3 a volte mi dà in uscita comeChe cos'è un indice di copertura automatico?

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

Da dove viene l'indice provengono e che cosa fa? La tabella non ha indici creati manualmente su di essa.

risposta

9

"Automatico" significa che SQLite crea un indice temporaneo che viene utilizzato solo per questa query e successivamente eliminato.

Ciò accade quando si stima che il costo di creazione dell'indice sia inferiore al costo di cercare i record nella tabella senza l'indice.

(A covering index è un indice che contiene tutte le colonne da leggere, il che significa che il record corrispondente alla voce di indice non ha bisogno di essere guardato nella tabella.)