anayze和vacuum区别

来源:这里教程网 时间:2026-03-14 23:49:12 作者:

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获取的具体区别

  • 相关推荐