大家好,余杰来为大家解答MySQL的索引条件下推(index condition pushdown,ICP)的相关ICP许可证知识。MySQL的索引条件下推(index condition pushdown,ICP)很多人还不知道,现在让我们一起来看看吧!
索引下推:不符合索引最左前缀原则,却还能利用复合索引的其他字段,减少回表次数。
最左前缀可用于在索引中定位记录。那不符合最左前缀的部分,会怎样?
用户表联合索引(name, age)为例,现在需检索表中“名字第一个字是张,且年龄是10的所有男孩”:
select * from user where name like '张%' and age=10 and ismale=1;
在搜索索引树时,只能用 “张”,找到第一个满足条件记录ID3。总比全表扫好。然后判断其他条件。
ICP是MySQL使用索引从表中检索行的场景优化:
图里每个虚线箭头表示回表一次。
(name,age)索引里故意去掉age值,这过程InnoDB并不看age值,只按序把name第一个字是’张’的记录一条条取出来,并回表,共计回表4次。
InnoDB在(name,age)索引内部就开始判断age是否等于10,对不等于10的记录,直接判断并跳过。这个例子中,只需对ID4、ID5这两条记录回表取数据判断,即只需回表2次。
本文到此结束,希望对大家有所帮助。
特别声明:本文来自网络或网友投稿,部分图片和文字来源于网络收集整理,仅供学习交流,版权归原作者所有,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除;邮箱:1091218940@qq.com
本页标题:MySQL的索引条件下推(index condition pushdown,ICP)
留言通道
发送成功之后,我们会尽快回复您!
Online Consulting