暂无图片
pg索引的字段的唯一值数量,如何查看
我来答
分享
暂无图片 匿名用户
pg索引的字段的唯一值数量,如何查看

索引的字段的唯一值数量,如何查看

比如表t  有 a  b  c  共3个字段,


想看下这3个字段的distinct 值的数量,选择一个唯一值多的列上创建索引,

查哪个系统表


问题2:

pg_stats 中的n_distinct 怎么永远是-1 ,我一个表只要一个字段id ,共10,30 这2条记录,正常唯一值数量应该是2 ,analyze 后n_distinct 怎么还是-1 ?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
梧桐
2025-03-06

1、统计最新数据

analyze t;

2、使用 pg_stats 查询字段唯一值数量
select attname, n_distinct
from pg_stats
where tablename = ‘t’;

  • n_distinct>1,表示唯一值的估算数量。
  • n_distinct<1,表示唯一值占比,例如-1,意味着几乎所有值都是唯一(适合索引)

3、直接计算真实唯一值数量

Select
COUNT(DISTINCT a) AS a_distinct,
COUNT(DISTINCT b) AS b_distinct,
COUNT(DISTINCT c) AS c_distinct
FROM t;

暂无图片 评论
暂无图片 有用 4
打赏 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏