sql >> Databáze >  >> RDS >> PostgreSQL

Jak se rozhoduje o skenování haldy bitmap a skenování indexu?

Kolik řádků máte celkem v tabulce? Rozhodnutí je založeno na tom, jaký podíl řádků bude na výstupu skenování indexu.

Pokud má být zpřístupněna dostatečně velká část tabulky, použije se skenování indexu bitmapy, aby se zajistilo, že co největší část přístupu na disk bude sekvenční. Naproti tomu prosté prohledávání indexu provádí náhodný přístup k datům tabulky po jedné stránce. (A pokud je podíl tabulky, ke které se předpokládá přístup, dostatečně vysoký, index se vůbec nepoužívá a celá data tabulky se načtou postupně)

Jedním z problémů je, že projekce počtu řádků z tabulky, ke kterému se bude přistupovat, je pouze odhad. Ale jak si dokážete představit, 'IT%' bude pravděpodobně odpovídat více než 'ITQ%' (nezapomeňte, že přípona není součástí prohledávání indexu, ale pouze finálním filtrem)




  1. MySQL:Seskupit a spočítat více polí

  2. Databáze:SQL stránkování?

  3. Jak spustit SQL skript v MySQL?

  4. Mariadb - Každá dávka prodloužené doby provádění vkládání se postupně zvyšuje