加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

详解MySQL数据库的Index Condition Pushdown(ICP)特性

发布时间:2019-07-22 18:19:24 所属栏目:评测 来源:佚名波波说运维
导读:副标题#e# 概述 今天主要介绍一下mysql的ICP特性,可能很多人都没听过,这里用一个实验来帮助大家加深一下理解。 一、Index_Condition_Pushdown Index Condition Pushdown (ICP)是MySQL用索引去表里取数据的一种优化。如果禁用ICP,引擎层会穿过索引在基表

在运行三次相同的查询,结果如下:

详解MySQL数据库的Index Condition Pushdown(ICP)特性

有意思的事情发生了,关闭ICP后,同样的查询,耗时是之前的三倍以上。

下面我们用explain看看后者的执行计划:

  1. mysql> explain SELECT * FROM employees WHERE first_name='Mary' AND last_name LIKE '%man'; 
详解MySQL数据库的Index Condition Pushdown(ICP)特性

从开启ICP和关闭ICP的执行计划可以看到区别在于Extra,开启ICP时,用的是Using index condition;关闭ICP时,是Using where。

其中Using index condition就是ICP提高查询性能的关键。下面说明ICP提高查询性能的原理。

三、原理

ICP的原理简单说来就是将可以利用索引筛选的where条件在存储引擎一侧进行筛选,而不是将所有index access的结果取出放在server端进行where筛选。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读