多列索引生效规则
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要,只需要知道结果,既然是索引那这个数据结构最后是排好序;就像新华字典他的目录就是按照a,b
千家信息网最后更新 2025年01月27日多列索引生效规则
mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要,
只需要知道结果,既然是索引那这个数据结构最后是排好序;就像新华字典他的目录就是按照a,b,c..这样排好序的;
所以你在找东西的时候才快,比如你找 "中" 这个字的解释,你肯定就会定位到目录的 z 开头部分;
组合索引可以这样理解,比如(a,b,c),abc都是排好序的,在任意一段a的下面b都是排好序的,任何一段b下面c都是排好序的;
组合索引的生效原则是 从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用,断点后面的索引没有起作用;
比如
where a=3 and b=45 and c=5 .... 这种三个索引顺序使用中间没有断点,全部发挥作用;where a=3 and c=5... 这种情况下b就是断点,a发挥了效果,c没有效果where b=3 and c=4... 这种情况下a就是断点,在a后面的索引都没有发挥作用,这种写法联合索引没有发挥任何效果;where b=45 and a=3 and c=5 .... 这个跟第一个一样,全部发挥作用,abc只要用上了就行,跟写的顺序无关
(a,b,c) 三个列上加了联合索引(是联合索引 不是在每个列上单独加索引)
还需注意, (a,b,c)多列索引和 (a,c,b)是不一样的,看上面的图也看得出来关系顺序是不一样的;
分析几个实际例子来加强理解;
分析句子中使用的索引情况
(0) select * from mytable where a=3 and b=5 and c=4;abc三个索引都在where条件里面用到了,而且都发挥了作用(1) select * from mytable where c=4 and b=6 and a=3;这条语句列出来只想说明 mysql没有那么笨,where里面的条件顺序在查询之前会被mysql自动优化,效果跟上一句一样(2) select * from mytable where a=3 and c=7;a用到索引,b没有用,所以c是没有用到索引效果的(3) select * from mytable where a=3 and b>7 and c=3;a用到了,b也用到了,c没有用到,这个地方b是范围值,也算断点,只不过自身用到了索引(4) select * from mytable where b=3 and c=4;因为a索引没有使用,所以这里 bc都没有用上索引效果(5) select * from mytable where a>4 and b=7 and c=9;a用到了 b没有使用,c没有使用(6) select * from mytable where a=3 order by b;a用到了索引,b在结果排序中也用到了索引的效果,前面说了,a下面任意一段的b是排好序的(7) select * from mytable where a=3 order by c;a用到了索引,但是这个地方c没有发挥排序效果,因为中间断点了,使用 explain 可以看到 filesort(8) select * from mytable where b=3 order by a;b没有用到索引,排序中a也没有发挥索引效果
索引
效果
断点
作用
顺序
三个
就是
情况
排序
联合
地方
数据
数据结构
条件
目录
结构
结果
部分
分析
组合
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全和信息化研究
网络安全反事故措施
宣城市金宏网络技术
山东浙商互联网科技有限公司
绝地求生下载的是什么服务器
免费云个人服务器
数据库中怎么为一个表格添加
泰国服务器租用
网络安全保护法基本法
计算机网络技术文字设计
vc股票软件开发网盘
数字创意产业论坛网络安全研讨
石家庄服务器散热片厂家
网络技术学院风套装推荐
数据库备份重新导入
安卓学习机服务器异常
互联网科技大变化
rcon向服务器发送命令
科技互联网需要有新的定义
软件开发 收入确认 验收
网络安全包含内容
网卡驱动软件开发
哪个行业的软件开发比较稳定
广西网络安全周2020年
恢复操作已将该数据库标记为
网络安全大会bcs
网络安全宣传周知识手册
网络安全主题课的感受100字
镇江应用软件开发公司排行榜
网络安全服务怎样开展