以下命令VACUUM my_table
已经在Postgres(v11.5(上运行了24小时
该表周围有:
- 1.12亿行
- 表空间:193 GB 6 个
- 不同字段上的 6 个索引 + 主键索引
这正常吗?
更多信息,如果它有帮助...
- AWS RDS 实例
- 16GB 内存 + 4 个 vCPU (db.m5.xlarge(
- 800GB 分配的存储空间(到目前为止,数据库占用了 495GB(
- 预配置 IOPS - 10000
在此处添加更多信息 -
SELECT relname, n_dead_tup FROM pg_stat_user_tables;
返回163441017
- 我们没有对数据库运行任何应用程序查询,我们想让数据库完成清空过程
可以。也许您的 16GB RAM 太低,无法有效操作大表(190GB(。非常通用的规则说,所以 RAM 的大小应该约为 1/10 db。
您可以检查的内容:
a( 查看表pg_stat_activity
中的相关进程,并检查vacuum
是否未处于等待锁定状态。
b( 如果可以,请检查与 IO 相关的指标。也许在那里你会看到高IO等待 - 这是信号,所以你的IO过载,然后vacuum
可能非常慢。表193GB真的很大。