索引基数

虽然读书时有学索引,但是一直都是一知半解的状态,现在需要重新拾起来,需要好好了解一下,一个概念一个概念的来。
学习来源:这里http://www.jb51.net/article/89450.htm
定义:基数是数据列所包含的不同值的数量。

例如,某个数据列包含值1、3、7、4、7、3,那么它的基数就是4(只有1、3、4、7这四个数)

效率问题:

  • 索引的基数相对于数据表行数较高(也就是说,列中包含很多不同的值,重复的值很少)的时候,它的工作效果最好
  • 如果某数据列含有很多不同的年龄,索引会很快地分辨数据行。如果某个数据列用于记录性别(只有”M”和”F”两种值),那么索引的用处就不大
  • 如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。
  • 惯用的百分比界线是”30%”。现在查询优化器更加复杂,把其它一些因素也考虑进去了,因此这个百分比并不是MySQL决定选择使用扫描还是索引的唯一因素。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,061评论 19 139
  • 马上就要到国庆节了,好是期待呀。最近一直忙成狗,急需一个长假调整一下自己的心境和状态 今天我们要说的是索引相关的知...
    小炼君阅读 4,518评论 0 50
  • 之前的文章一直在规避索引的建立去优化数据库,不是不想讲,而是这个太重要,必须抽出来讲。今天我们就来研究下数据库索引...
    sherlock_6981阅读 8,084评论 0 23
  • 之前的文章一直在规避索引的建立去优化数据库,不是不想讲,而是这个太重要,必须抽出来讲。今天我们就来研究下数据库索引...
    JackFrost_fuzhu阅读 10,178评论 0 70
  • 微风,轻轻地拂过水面,荡起了涟漪; 你站的笔直,孤傲中带着冷清。 细雨,无声的坠入池塘,戳破水中的明月; 你抬着头...
    墨千曦阅读 3,294评论 0 2

友情链接更多精彩内容