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

Hvordan besluttes Bitmap Heap Scan og Index Scan?

Hvor mange rækker har du i alt i tabellen? Beslutningen er baseret på, hvor stor en andel af rækkerne, der vil blive outputtet af indeksscanningen.

Hvis en tilstrækkelig høj andel af tabellen skal tilgås, bruges en bitmap-indeksscanning for at sikre, at så meget af diskadgangen som muligt er sekventiel. Derimod giver en almindelig indeksscanning én side ad gangen tilfældig adgang til tabeldataene. (Og hvis andelen af ​​tabellen, der forventes at få adgang til, er høj nok, bruges indekset slet ikke, og hele tabeldataene indlæses sekventielt)

Et problem er, at fremskrivningen af, hvor mange rækker fra tabellen, der skal tilgås, kun er et skøn. Men som du kan forestille dig, vil 'IT%' sandsynligvis matche mere end 'ITQ%' (husk at suffikset ikke er en del af indeksscanningen, kun det endelige filter)




  1. Sådan bruger du analytiske funktioner i Oracle (Overpartition efter søgeord)

  2. Retter 1064 SQL-fejl ved import af database til Wampserver

  3. Skinner passerer ikke DB-forespørgslen på søgeformularen

  4. Underordnet + overordnet reference SQL