ITPub博客

首页 > 数据库 > Oracle > SQL优化必懂概念(一):基数

SQL优化必懂概念(一):基数

原创 Oracle 作者:a960549548 时间:2024-03-07 09:06:12 0 删除 编辑

某个列围一键( Distinct_ Keys )的数量叫作基数。 比如性别列, 该列只有男女之分, 所以

这一列基数是 2 。主键列的基数等于表的总行数。基数的高低影响列的数据分布。一般选择性大于 20% 的就是均匀分布的。

 

求一个表总行数:

Select count(*) from table;

求一个列基数:

Select count(distinct colname) from table;

 

Select count(*),count(distinct colname) from table;

 

基数越低说明重复数据越多,基数越高说明重复数据越少

 

在做优化的时候不能只看基数,还要看数据分布,如果里面某个用户占总行数多数,就算基数高也得走全表扫。

在做 SQL 优化的时候, 如果怀疑列数据分布不均衡, 我们可以使用

select 列,count(*) from 表 group by 列 order by 2 desc;

来 查看列的数据分布。


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

请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171511