序章 PostgreSQLのテーブルにはテーブルごとにVisibility Mapが存在していて、VACUUM処理を高速化したり、Index Only Scanの際に用いられます。 Visibility Mapについての詳細は公式マニュアルをご参照ください。 VMの高速化についての詳細は公式マニュアルには書いてないのですが、Visibility Mapを使ってVACUUMをスキップするのは、Visibility Mapのビット列で、1(つまりall-visible)が連続で32個以上続いた時のみになります。これはOSの先読み機能によりVACUUM対象よりの先のページをすでに読み込んでいる為、ゴミのあるページがある程度まとまっている状態でスキップしないと逆に性能が悪くなってしまう為、このような仕様になっています。 テーブルのページ数や、その中でall-visibleであるページの数はpg_c