暂无图片
关于SQL优化概念疑问
我来答
分享
Dreamer
2020-01-20
关于SQL优化概念疑问
暂无图片 5M

1)选择性(SELECTIVITY)
基数/总行数的百分比
选择性越高,越有利于使用索引。

2)可选择率(Density)
施加指定谓词条件后返回结果集的记录数占未施加任何谓词条件的原始结果集的记录数的比率。可选择率的取值范围显然是0~1,它的值越小,就表明可选择性越好。

疑问:
是不是选择性,是表与生俱来的性质。
而可选择率,必须要根据sql后面where子句过滤后得到结果集的记录数,才有的一个概念?

这两个概念有点混淆,帮忙解释。

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
xiazhangch

基数(Cardinality) 也就是列唯一键(Distinct_keys)的数量,比如性别,该列只有男女之分,所
以这一列基数是2。主键列的基数等于行数。
非主键列的基数怎么算?
select count(distinct column_name) from table
选择性(Selectivity) : 列唯一键(Distinct_Keys)与行数(Num_Rows)的比值
跟 走不走 索引 有木有 关系? 有一点关系

一般来说基数越多,返回的数据就越少。这样的列也更适合去建索引。所以正常情况下 基数越多,越适合建立索引.列的基数太低,就并不适合建立索引。

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