PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come vengono decise la scansione dell'heap bitmap e la scansione dell'indice?

Quante righe hai in totale nella tabella? La decisione si basa su quale proporzione di righe verrà generata dalla scansione dell'indice.

Se si accede a una parte sufficientemente elevata della tabella, viene utilizzata una scansione dell'indice bitmap per garantire che la maggior parte dell'accesso al disco sia sequenziale. Al contrario, una semplice scansione dell'indice esegue l'accesso casuale una pagina alla volta ai dati della tabella. (E se la proporzione della tabella prevista per l'accesso è sufficientemente alta, l'indice non viene utilizzato affatto e l'intera tabella viene caricata in sequenza)

Un problema è che la proiezione di quante righe della tabella saranno accessibili è solo una stima. Ma come puoi immaginare, è probabile che "IT%" corrisponda più di "ITQ%" (ricorda che il suffisso non fa parte della scansione dell'indice, solo il filtro finale)