ITPub博客

首页 > 数据库 > PostgreSQL > anayze和vacuum区别

anayze和vacuum区别

原创 PostgreSQL 作者:yleizzz 时间:2025-12-31 17:37:03 0 删除 编辑


anayze 是收集统计信息,用于查询分析优化


举例如下:

bsc_dict 实际总数量是52949


此时系统表pg_stat_user_tables的信息如下 

n_live_tup,n_dead_tup 都是0 

未收集统计信息的状态


收集统计信息

analyze bsc_dict

或者输出详细

ANALYZE VERBOSE bsc_dict ;


结果如下

n_live_tup=52949,n_dead_tup=22 都产生相应变化


发现n_dead_tup 有死元组


回收死元组

注意此动作会锁表

vacuum full  bsc_dict;

执行完成发现 空间已经释放,但是pg_stat_user_tables 数据没有变化


需要重新收集统计信息

ANALYZE VERBOSE bsc_dict ;

如下图 n_dead_tup 变为0 



根据以上 我们获取结论

  • VACUUM FULL 清理 物理存储,不一定更新 统计信息

  • pg_stat_user_tables.n_dead_tup 是统计信息,不是实时数据

  • 清理后 必须执行  ANALYZE 更新统计,才能获取n_dead_tup的真实信息



下图是deepseek获取的具体区别


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30127122/viewspace-3106823/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: mysql面试
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2015-02-03

  • 博文量
    101
  • 访问量
    184279