• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

每日学习笔记(15)_MySQL

mysql 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

今天接着读《MySQL技术内幕InnoDB存储引擎》的第5章关于索引这部分内容。

什么时候使用B+树索引?并不是在所有的查询条件下出现的列都需要添加索引,作者指出当访问表中很少一部分行时,使用B+树索引才有意义。对于像性别,地区,类型等字段,它们的可取值范围很小,即所谓低选择性,比如Select * from student where sex=’M’,那么结果可能是该表50%的数据,此时添加B+树索引是完全没有必要的,相反,如果某个字段的取值范围很广,几乎没有重复性,即高选择性,则此时使用B+树索引是最合适的,例如姓名字段。

因此,当访问高选择性字段并从表中取出很少一部分数据行时,对这个字段添加B+ 树索引是非常有必要的。但是如果出现了访问字段是高选择性的,但是取出的行数据占据表中大部分的数据时,此时MySQL就不会使用B+树索引了。MySQL的优化器会通过EXPLAIN的rows字段预估查询可能得到的行,如果大于某个值,则B+树会选择进行全表的扫描,至于这个值,作者估计一般为20%,即取出的数据量超过表中数据的20%,优化器就不会使用索引,而是进行全表的扫描。但有时优化器的选择并不完全是正确的,此时你可以强制使用索引。

作者:洞庭散人

出处:http://phinecos.cnblogs.com/    

本博客遵从Creative Commons Attribution 3.0 License,若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接U本文来源gaodai#ma#com搞*!代#%^码网%RL。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:每日学习笔记(15)_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址