暂无图片
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条回答
默认
最新
梧桐

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
回答交流
Markdown


请输入正文
提交
相关推荐
repmgr5.1 正常切换告警,不知道是啥问题,求各位大佬看看
回答 2
切换过程成功停止了当前主节点并将备用节点提升为主节点。但是,由于未提供密码而无法连接到数据库,因此在新主节点的检查点阶段发生错误。与重新加入目标节点的复制连接也失败,系统正在等待之前的主节点重新连接到
usage_privileges 中没有数据,但是super用户已经授权成功了
回答 1
informationschema.usageprivileges系统视图当前仅会记录排序规则、域、外部数据包装器、外部服务器和序列的usage权限授权信息,你的授权语句为为readonly用户授予p
backup_manifest这个文件备份中出现,是从哪个版本开始的?
回答 1
13版本的新特性,提高物理备份的可靠性(backupmanifest和pgverifybackup都是13版本引入的)
plan-time 大于exec-time的pg问题
回答 2
耗时不高数据量也不大,用提升性能
mysql 、postgresql、达梦、人大金仓这些数据库如何将delete的表里的数据快速恢复?
回答 1
已采纳
mysql8.0貌似也支持了。。而且可以用binlogpg需要用备份archive来恢复了
如何使用JSON数据类型?
回答 1
这个我知道,刚刚学习过使用JSON管理复杂数据使用PostgreSQL分析NGINX访问日志JSON类型JSON函数和操作符
PG:在列上创建索引后,仍使用顺序扫描,怎么才能绕过?
回答 1
已采纳
要看表结构和索引的列的区分度。如果区分度较好。比如你是唯一的,那么不会出现你说的情况。所以要看实际情况。
怎么通过sh脚本 登陆 postgresql?
回答 1
已采纳
通过psql连接,可以使用非交互模式进行查询。
postgreSQL 12.12版本哪里查到表的上次ddl时间?
回答 2
PG12版本可能没什么比较好的方法。PG13版本后,可以开启trackcommittimestamp,然后通过查询数据字典中数据修改时间去判断或者openGauss/MogDB,他们对pgtables
postgresql数据库查询时 offset 过大时,延迟过高,有什么较好的解决办法吗?
回答 1
大数据量时候,使用limitoffset进行分页,耗时将越来越大,查询的性能不断下降。可以使用排序过滤条件分页分页,用whereorderbylimit替代orderbylimitoffset。例如一