定期维护任务
更新时间:2022-11-30
在云数据库 FusionDB 中建议设置定期空洞回收的维护任务。
回收空洞
云数据库 FusionDB 使用MVCC机制,数据的更新操作(INSERT、UPDATE、DELETE、ALTER TABLE ADD COLUMN )不会直接修改原数据,而是标记数据为不可用,然后插入新数据。随着不断的更新数据,数据库中不可用的数据会越来越多,造成系统性能下降,并占用大量磁盘空间,因此需要定期进行空洞回收。
VACCUM
Vacuum都会将空洞重新标记为可用,而且不会锁表,表进行Vacuum期间不影响读写。由于Vacuum对数据库其他操作影响不大,所以建议对于频繁更新的表最好两个小时执行一次;如果更新是每天一次批量进行的,可以在每天批量更新后做一次。
VACUUM FULL
VACUUM FULL会将表中所有的空洞都进行回收,但会锁表,VACUUM FULL期间表无法读写,并且会导致CPU,磁盘IO增加。所以建议每周做一次VACUUM FULL操作。