PostgreSQL vacuum バキューム 再利用
PostgreSQL vacuum
行を削除・更新した場合、その行をすぐに物理的に削除したり、更新するのではなく、 その行に「削除マーク」を付け、更新の場合は新しい行を追加するという追加方式をとっている。
vacuum
不要領域をチェックし、再利用するために FSM という共有メモリ上の領域に "場所"、"大きさ"を登録する。 不要領域の物理的な削除は行なわない。
vacuum full
不要領域の削除を行い、ディスク領域を回復させる。 ただし、実行中はテーブルに排他ロックがかかり、アクセス不可になる。
データ追加時の流れ
1. FSM が検索 1-1. 適当な大きさの不要領域が見つかれば再利用 1-2. FSM を使い切った場合など、領域が見つからなければ、新たにブロック格納 2. 定期的にVACUUMを実行して、FSM に再利用領域の補充を行なう。 ※1時間1回、または1日1回は行なうようにする。
試しに
postgres=# vacuum verbose analyze bsc ; INFO: vacuuming "public.bsc" INFO: index "bsc_index" now contains 209507 row versions in 12474 pages DETAIL: 0 index pages have been deleted, 0 are currently reusable. CPU 0.31s/0.13u sec elapsed 0.43 sec. INFO: index "bsc_tmp_pkey" now contains 209507 row versions in 1017 pages DETAIL: 0 index pages have been deleted, 0 are currently reusable. CPU 0.01s/0.00u sec elapsed 0.01 sec. INFO: "bsc": found 0 removable, 209507 nonremovable row versions in 25278 pages DETAIL: 0 dead row versions cannot be removed yet. There were 166113 unused item pointers. 0 pages are entirely empty. CPU 0.58s/0.20u sec elapsed 0.78 sec. INFO: vacuuming "pg_toast.pg_toast_316024919" INFO: index "pg_toast_316024919_index" now contains 0 row versions in 1 pages DETAIL: 0 index pages have been deleted, 0 are currently reusable. CPU 0.00s/0.00u sec elapsed 0.00 sec. INFO: "pg_toast_316024919": found 0 removable, 0 nonremovable row versions in 0 pages DETAIL: 0 dead row versions cannot be removed yet. There were 0 unused item pointers. 0 pages are entirely empty. CPU 0.00s/0.00u sec elapsed 0.00 sec. INFO: analyzing "public.bsc" INFO: "bsc": 25278 pages, 3000 rows sampled, 229961 estimated total rows VACUUM postgres=# select count(*) from bsc; count -------- 209507 (1 row) postgres=# select relname, relfilenode, relpages postgres-# from pg_class postgres-# where relname like 'bsc'; relname | relfilenode | relpages ---------+-------------+---------- bsc | 316024919 | 25278 (1 row) postgres=# \! ls -l /var/base/316024797/316024919 -rw------- 1 postgres dba 207077376 Jul 5 14:04 /psgdata/base/316024797/316024919
ご訪問頂き有難う御座います。
当サイトを効率良く使うためにまずは FrontPage を見て下さい。
検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage