我创建了一个包含 100 万条记录的表,然后删除了这些记录。(常见于某种处理列表。)
CREATE TABLE example (id int PRIMARY KEY);
INSERT INTO example SELECT generate_series(1, 1000 * 1000);
DELETE FROM example;
VACUUM example;
索引大小保持与删除前相同的大小。
SELECT pg_size_pretty(pg_relation_size(c.oid)) AS size
FROM pg_class c
WHERE oid = 'example_pkey'::regclass;
size
-------
21 MB
(1 row)
同样,膨胀检测查询(例如ioguix/pgsql-bloat-estimation)将此索引识别为极度膨胀。
我不关心磁盘使用本身。指数的表现是否会因规模过大而受到影响?我应该跑步REINDEX
吗?