伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

从根上理解为什么说索引的离散型越高越好?

来源:本站原创 浏览:96次 时间:2022-06-11

昨天的那篇文章中,我留了一个问题:“为什么说索引的离散型越高越好?”今天我们就一起从根上理解它!

还是那句话,任何问题,要知其然,还要知其所以然。希望通过这篇文章的讲解,你能明白两个问题。一个问题就是索引离散型;还有一个问题就是 like 查询问题,其实 like ‘xttblog%’ 也不一定走索引的。

WHERE 条件中,like ‘xttblog%’, like ‘%xttblog%’, like ‘%xttblog’,三种方式查询方式,后两种方式对于索引是无效的,有索引也不会走索引。第一种 ‘xttblog%’ 是不确定的,决定于列的离散型,理论上讲可以用到,如果发现离散情况特别差的情况下,查询优化器觉得走索引查询性能更差,还不如全表扫描。所以,关于 like 查询其实很多人也是有误解的!

离散型的好坏,决定着优化器是否走索引。

假设我们现在有一个状态字段 status,它的离散型非常的差,那么对它建立索引,对应的索引树,举例如下:


你看我这个例子,status 字段的索引离散型非常的差,如果此时搜索 status = 1 的数据,根节点判断的时候,结果是查询左子树,但是当在左子树第二层再进行判断的时候,因为左右分支都满足条件,所以很难抉择选择哪一个分支继续搜索,或者是把两个分支同时进行搜索。

如果是范围查询还好一点,因为所有的叶子节点都是有顺序的。我从最左边开始,一直遍历到不符合条件的第一条数据为止,把数据返回。这是 B+ 树的一个特点,有序性更强!
但是呢?由于离散型非常的差,优化器可能直接就选择不走索引了,因为优化器可能认为,走索引和全表扫描差不多。

所以,我们再创建索引时,一定要选择重复值较低的字段。

离散型有一个计算公式:count(distinct col):count(col),离散型越高,选择型越好。

以上,希望能够帮助大家解惑!知识点虽小,但是能讲明白的,少之又少!

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net