暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

【Oracle】什么是VACUUM?VACUUM的作用?

原创 scott 2021-05-19
2598

初识VACUUM,在维基上查了一下,字面上是真空的意思,完全没有解释我要的postgres的vacuum

image.png

What’s VACUUM

通常在对postgres数据库的表做变更后,需要做vacuum,postgres文档描述如下

image.png

VACUUM的作用

1、释放再利用用户对表做更新或者删除的行所占据的磁盘空间

PostgreSQL数据的插入,更新,删除操作并不是真正把数据放到数据库空间,如果不定期释放空间的话,由于数据太多,查询速度会下降

2、更新postgres查询计划中使用的统计数据

为了提高查询速度,PostgreSQL会根据统计信息来确定执行计划,如果不及时更新的话,会影响查询速度

3、防止因事务ID的重置而使非常老的数据丢失

PostgreSQL中每一个事务都会产生一个事务ID,事务ID是有上限的,当事务ID达到最大值后,会重新从最小值开始循环,如果不及时把以前的数据释放掉的话,原来的老数据会因为事务ID的丢失而丢失

VACUUM的两种方式

标准 VACUUM

进行回收时不影响数据库的正常使用,清理时不允许对表结构进行修改(推荐)。

VACUUM FULL

可以回收大量空间,但是比标准回收执行慢,运行时需要锁表。

The FULL option is not recommended for routine use, but might be useful in special cases. An example is when you have deleted or updated most of the rows in a table and would like the table to physically shrink to occupy less disk space and allow faster table scans. VACUUM FULL will usually shrink the table more than a plain VACUUM would.

最后修改时间:2021-06-23 11:15:29
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论