暂无图片
MySQL 语句优化ICP
最近更新:2022-03-11 14:21:05

ICP介绍

Index Condition Pushdown(ICP)是MySQL 5.6中新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式。ICP可以减少存储引擎访问基表的次数以及MySQL服务器访问存储引擎的次数。

当MySQL使用索引从表中检索行时,索引条件下推(ICP)是一种优化。

  • 在禁用ICP的情况下, 存储引擎遍历索引以定位基表中的行,并将它们返回给Server层,Server层再去为这些数据行进行where条件的过滤。

  • 在启用ICP的情况下, 如果只使用索引中的列就可以计算WHERE条件的部分内容,那么MySQL服务器将WHERE条件的这部分内容下推到存储引擎。存储引擎然后通过使用索引条目来计算推入索引条件,只有满足了这个条件才从表中读取行。

实现方式

image.png 备注: ICP的目标是减少整行读取的数量,从而减少I/O操作。同时减少server层和innodb层的数据交互,并且避免server层数据处理,server层更多的资源用在协调上。

执行计划

......