我已经从大约 7500 万行的 PostgreSQL 表中删除了大约 6500 万行。删除查询一完成,CPU 就骤降到 100%,持续约五分钟。
删除行的表有多个索引,并且在删除期间和删除之后被大量使用。不幸的是,我没有办法重现这个问题,因为它发生在生产环境中。
autovacuum 是否可能启动?如果是,它是否可以将具有 32 个 CPU 核心的数据库驱动到 100% CPU 使用率?如果是这样,是否有办法限制 autovacuum 的摄入量,以便在大量删除查询后不会降低数据库性能?
我正在使用 PostgreSQL 版本 14.8。