云数据库 RDS-AutoVacuum介绍和调优:表膨胀
表膨胀
由于MVCC机制,PostgreSQL的DELETE操作并不会真正删除元组,而是将其标记为已删除状态,这些被标记为删除的元组称为死元组(dead tuples),UPDATE也是同理,可以看成是先DELETE然后再INSERT;由于DELETE并不是真正的删除数据,死元组依旧占用磁盘空间,就会出现虽然查询表数据很少,但是磁盘占用空间很大,这样就会形成表膨胀。
vacuum可以用来解决表膨胀的问题,vacuum会清理死元组,但是并不会重新组织活元组在表上的存储位置,其会维护表的空闲空间映射(FSM)以供接下来的元组INSERT操作从而避免占用更多的空间。
vacuum full则更干脆一些,会对原表进行重建,但是vacuum full会对表进行锁定,在执行vacuum full期间无法对表进行读写操作。同时,如果表的数据量太大,在使用vacuum full时执行时间会很长,请在业务低峰期进行操作。
- GaussDB底层硬件_gaussdb介绍_高斯数据库底层硬件_华为云
- GaussDB数据库参数调优_GaussDB版本_高斯数据库参数调优
- 文档数据库服务DDS性能调优_MongoDB性能调优_华为云
- GaussDB性能怎么调_GaussDB性能调优_高斯数据库性能怎么调-华为云
- GaussDB案例指南_高斯数据库函数_高斯数据库案例指南_华为云
- GaussDB计算性能_gaussdb递归_高斯数据库计算性能_华为云
- GaussDB性能怎么调_华为gaussdb_gaussdb性能_gaussdb学习
- GaussDB性能_性能统计_高斯数据库性能-华为云
- GaussDB性能_Gaussdb数据库性能_高斯数据库性能-华为云
- GaussDB华为部署_高斯数据库_高斯数据库华为部署_华为云