什么是MySQL索引下推优化
  R4VBsx5oF4Uo 2023年11月02日 25 0

索引条件下推优化(Index Condition Pushdown (ICP) ) 是MySQL5.6添加的,用于优化数据查询。

不使用索引条件下推优化时存储引擎通过索引检索到数据,然后返回给MySQL Server,MySQL Server进行过滤条件的判断。

当使用索引条件下推优化时,如果存在某些被索引的列的判断条件时,MySQL Server将这一部分判断条件下推给存储引擎,然后由存储引擎通过判断索引是否符合MySQL Server传递的条件,只有当索引符合条件时才会将数据检索出来返回给MySQL服务器。

例如一张表,建了一个联合索引(name, age),查询语句: select * from t_user where name like '张%' and age=10; ,由于name 使用了范围查询,根据最左匹配原则:

不使用ICP,引擎层查找到name like '张%' 的数据,再由Server层去过滤age=10这个条件,这样一来,就回表了两次,浪费了联合索引的另外一个字段age 。

什么是MySQL索引下推优化_MySQL

但是,使用了索引下推优化,把where的条件放到了引擎层执行,直接根据name like '张%' and age=10 的条件进行过滤,减少了回表的次数。

什么是MySQL索引下推优化_存储引擎_02

索引条件下推优化可以减少存储引擎查询基础表的次数,也可以减少MySQL服务器从存储引擎接收数据的次数。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
R4VBsx5oF4Uo