为了保证数据库的有效运行,数据库必须在插入/删除操作后,基于客户场景,定期做VACUUM FULL和ANALYZE,更新统计信息,以便获得更优的性能。
使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护,主要有以下原因:
使用VACUUM或VACUUM FULL命令,进行磁盘空间回收。
VACUUM:
对表执行VACUUM操作
openGauss=# VACUUM customer;
VACUUM
可以与数据库操作命令并行运行。(执行期间,可正常使用的语句:SELECT、INSERT、UPDATE和DELETE。不可正常使用的语句:ALTER TABLE)。
对表分区执行VACUUM操作
openGauss=# VACUUM customer_par PARTITION ( P1 );
VACUUM
VACUUM FULL:
openGauss=# VACUUM FULL customer;
VACUUM
需要向正在执行的表增加排他锁,且需要停止其他所有数据库操作。
使用ANALYZE语句更新统计信息。
openGauss=# ANALYZE customer;
ANALYZE
使用ANALYZE VERBOSE语句更新统计信息,并输出表的相关信息。
openGauss=# ANALYZE VERBOSE customer;
ANALYZE
也可以同时执行VACUUM ANALYZE命令进行查询优化。
openGauss=# VACUUM ANALYZE customer;
VACUUM
说明: VACUUM和ANALYZE会导致I/O流量的大幅增加,这可能会影响其他活动会话的性能。因此,建议通过“vacuum_cost_delay”参数设置《数据库参考》中“GUC参数说明 > 资源消耗 > 基于开销的清理延迟”。
删除表。
openGauss=# DROP TABLE customer;
openGauss=# DROP TABLE customer_par;
openGauss=# DROP TABLE part;
当结果显示为如下信息,则表示删除成功。
DROP TABLE
点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!