我在摆弄VACUUM
并注意到一些意想不到的行为,其中SELECT
从表中ing 行似乎减少了VACUUM
之后必须做的工作。
注意:autovacuum 被禁用
CREATE TABLE numbers (num bigint);
ALTER TABLE numbers SET (
autovacuum_enabled = 'f',
toast.autovacuum_enabled = 'f'
);
INSERT INTO numbers SELECT generate_series(1, 5000);
Run Code Online (Sandbox Code Playgroud)
现在我们对所有行运行更新,
UPDATE numbers SET num = 0;
Run Code Online (Sandbox Code Playgroud)
当我们跑步时,VACUUM (VERBOSE) numbers;
我们得到,
INFO: vacuuming "public.numbers"
INFO: "numbers": removed 5000 row versions in 23 pages
INFO: "numbers": found 5000 removable, 5000 nonremovable row versions in 45 out of 45 pages
DETAIL: 0 dead row versions …
Run Code Online (Sandbox Code Playgroud)