vacuum的使用
1.查看当前表的大小(表+索引)
db_test=# SELECT pg_size_pretty(pg_total_relation_size('tb_test'));
pg_size_pretty
----------------
1487 MB
(1 row)
单独表的索引
db_test=# SELECT pg_size_pretty(pg_relation_size('tb_test'));
pg_size_pretty
----------------
1273 MB
(1 row)
表记录数:
db_test=# select count(1) from tb_test;
count
----------
10000000
(1 row)
2.删除部分数据
db_test=# delete from tb_test where id<=5000000;
DELETE 4999901
这个时候再次查看表的大小
db_test=# SELECT pg_size_pretty(pg_total_relation_size('tb_test'));
pg_size_pretty
----------------
1487 MB
(1 row)
说明delete数据是不会是否空间的
3.vacuum(期间可以对表进行dml)
db_test=# vacuum tb_test;
VACUUM
瞬间完成,再次查看表占用空间情况
db_test=# SELECT pg_size_pretty(pg_total_relation_size('tb_test'));
pg_size_pretty
----------------
1487 MB
(1 row)
发现没有变化,下面使用vacuum full
db_test=# vacuum full tb_test;
VACUUM
这里一直等待,执行很久,同时对该表无法进行dml操作,包括select也无法使用,这个时候空间释放出来了
db_test=# SELECT pg_size_pretty(pg_total_relation_size('tb_test'));
pg_size_pretty
----------------
748 MB
(1 row)
-- The End --
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-11-30 11G 禁用对象分析
2021-11-30 升级补丁软件opatch(6880880)