sql >> Database >  >> RDS >> PostgreSQL

Hoe wordt besloten tot Bitmap Heap Scan en Index Scan?

Hoeveel rijen heb je in totaal in de tabel? De beslissing is gebaseerd op welk deel van de rijen wordt uitgevoerd door de indexscan.

Als een voldoende groot deel van de tabel wordt benaderd, wordt een bitmapindexscan gebruikt om ervoor te zorgen dat zoveel mogelijk schijftoegang sequentieel is. Daarentegen geeft een gewone indexscan één pagina per keer willekeurige toegang tot de tabelgegevens. (En als het aandeel van de tabel dat naar verwachting zal worden geopend hoog genoeg is, wordt de index helemaal niet gebruikt en worden de volledige tabelgegevens achtereenvolgens geladen)

Een probleem is dat de projectie van hoeveel rijen uit de tabel worden geopend slechts een schatting is. Maar zoals u zich kunt voorstellen, komt 'IT%' waarschijnlijk meer overeen dan 'ITQ%' (onthoud dat het achtervoegsel geen deel uitmaakt van de indexscan, alleen het laatste filter)




  1. PostgreSQL:vind zinnen die het dichtst bij een bepaalde zin liggen

  2. hoe het weergavevolgordeveld in php . te behouden

  3. Inzicht in meerdere kolomindexen in MySQL-query

  4. MySQL str_to_date probleem