今天接着读《MySQL技术内幕InnoDB存储引擎》的第5章关于索引这部分内容。
什么时候使用B+树索引?并不是在所有的查询条件下出现的列都需要添加索引,作者指出当访问表中很少一部分行时,使用B+树索引才有意义。对于像性别,地区,类型等字段,它们的可取值范围很小,即所谓低选择性,比如Select * from student where sex=’M’,那么结果可能是该表50%的数据,此时添加B+树索引是完全没有必要的,相反,如果某个字段的取值范围很广,几乎没有重复性,即高选择性,则此时使用B+树索引是最合适的,例如姓名字段。
因此,当访问高选择性字段并从表中取出很少一部分数据行时,对这个字段添加B+树索引是非常有必要的。但是如果出现了访问字段是高选择性的,但是取出的行数据占据表中大部分的数据时,此时MySQL就不会使用B+树索引了。MySQL的优化器会通过EXPLAIN的rows字段预估查询可能得到的行,如果大于某个值,则B+树会选择进行全表的扫描,至于这个值,作者估计一般为20%,即取出的数据量超过表中数据的20%,优化器就不会使用索引,而是进行全表的扫描。但有时优化器的选择并不完全是正确的,此时你可以强制使用索引。
分享到:
相关推荐
每日学习笔记11111111111111
JS学习笔记
已整理好基础版和高级版笔记 导出为pdf 和html 格式 界面清晰美观,均有详细目录
每日更新机器学习笔记、代码及其它内容。.zip
Study Notes日常学习笔记记录推荐使用打开Markdown简单Markdown语法整理初版日期:2021-3-28Allegro creat Gerber filesCreated date:2021-4-4GitCreated date:2021-4-4
spring学习笔记 很详细的学习笔记分享给大家,大家可以看看,绝对物有所值
stone的终身学习笔记 前言 09年 渣3本毕业,金融危机 09~10年 跑业务打杂工养活自己 10~12年 私企,企业资源管理ERP(VF、VB) 12~17年 国企,企业办公自动化OA(.NET、JavaScript) 17~20年 阿里影业,影城售票系统...
MLDL 研究生预备知识学习笔记,包含李宏毅深度学习与数字图像处理。 深度学习笔记在基础上添加自己的理解,纯自用。 MLDnotes 深度学习笔记 papernotes 论文笔记与相关知识 plans 每日计划
javascript_study 每日代码汇总,学习笔记及页面仓库
机器学习课程笔记完整版 机器学习 目录 机器学习算法课程定位、目标 定位 课程以算法、案例为驱动的学习,伴随浅显易懂的数学知识 作为人工智能领域(数据挖掘/机器学习方向)的提升课程,掌握更深更有效的解决...
此笔记为作者在有java基础的前提下,自学B站马士兵python视频所记,内容简洁方便看完视频后日后回顾,也适合自学B站马士兵python视频每日回顾。
学习英语需要积累每日一句,多多练习,多多积累,多多交流
每日英语词典 1-3期知识点 笔记 《Daily English Dictation》第1-3期知识点 1、(无听力讲解) 2、(讲解看截图)
这本书在我学习seo的过程中帮助很大,学到了很多的有用信息
算法学习笔记 通过leetcode的每日打卡,熟悉的分类算法;记录下学习过的算法题,整理成markdwn文本;并根据打卡情况制定计划,着重学习自己很难甚至没有理解的算法。习惯用Jupyter Notebook进行学习,刚好notebook...
Collection学习笔记Collection集合概述Collection集合常用方法Collection集合的遍历(迭代器)集合的使用样例 Collection集合概述 是单例集合的顶层接口 它提供了更具体的子接口的实现,如set和list. Collection集合...
每日一学 字典查找类似hash表,速度远超过for遍历列表。 for index,value in enumerate(s): .get函数两个参数时,第二个应重新字典引用,见下面使用方法 arabic += ara_rom_dict.get(s[index-1:index+1],ara_rom_...
目录 算法 每日更新 计算机操作系统 数据结构 前端工具 组件库 功能库 javascript React 打字稿 实用程序 emacs 吉特 多路复用器
在Hacktiv8的全栈新手训练营期间,进行个人学习笔记(每日挑战,实时代码等)。 工具: 文本编辑器:Visual Studio Code 终端机:Git bash,MacOS终端机,iTerm 版本控制:Git 回购经理:Github 包管理器:NPM...
已经很久都没有更新过这个仓库了,由于中间经历过一些事情变的懒惰了,之后会继续更新这个仓库,会添加一些自己学习的笔记以及每日的简短日记,跟随 Kiprey 的脚步,向 Kiprey 学习,近期应该不会更新与虚拟化和二...