索引条件下推(index condition pushdown)

索引条件下推(ICP)是MySQL的一种优化技术,它允许部分WHERE条件在存储引擎层面利用索引进行计算,减少不必要的数据传输和服务器端的计算。当ICP开启时,对于可以仅通过索引列判断的条件,MySQL会将其推送到存储引擎,提前过滤数据,从而降低回表次数和服务器访问存储引擎的频率。5.6版本开始引入此优化,显著提高了查询效率。
摘要由CSDN通过智能技术生成

索引条件下推(index condition pushdown)

概念

​ 当没有icp时,存储引擎会运用索引定位到符合索引条件的行,将这些行发送给MySQL server去计算where 条件是否正确(重点是在server端计算)。当有icp时,如果where 条件的一部分可以通过索引来计算(意思就是索引中包含的信息足以计算这一部分where条件),那么MySQL Server就会将这部分索引条件下推到(index condition push)存储引擎(下推的意思可以看MySQL逻辑架构图)去计算(这里是在存储引擎端就把计算给做了,不需要在发送到server端),这样的话就可以返回尽量少的行给MySQL Server,也尽量少的让MySQL Server访问存储引擎层。
一言以蔽之,在一个用到索引的查询当中,所有二级索引里包含的信息,都可以通过“ICP机制”被用到“在二级索引中过滤尽可能多的行”。

Index Condition Pushdown (ICP) is an optimization for the case where MySQL retrieves rows from a table using an index. Without ICP, the storage engine traverses the index to locate rows in the base table and returns them to the MySQL server which evaluates the WHERE condition for the rows. With ICP enabled, and if parts of the

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值