有点小激动-Index Condition Pushdown Optimization

今天有点激动,因为在5.6的官方文档中看到Index Condition Pushdown Optimization,简称ICP,这意味着什么,意味着mysql的优化器能够像oracle的优化器那样对索引列进行过滤,而不是像以前版本中只能使用前缀索引来过滤满足查询条件的行;

为了说明优化器是怎么利用ICP,可以使用下面查询来说明其优化:

SELECT * FROM people  WHERE zipcode=’95054′  AND lastname LIKE ‘%etrunia%’  AND address LIKE ‘%Main Street%’;

在没有ICP前,由于优化器只能只能使用前缀索引来过滤满足条件的查询,那么mysql只能够利用索引的第一个字段zipcode,来扫描people表满足ipcode=’95054’条件的记录,而后面的lastname和firstname由于使用了模糊查询,而不能在索引中继续过滤满足条件的记录,这个行为在引擎层完成,这样就导致了到服务器层对people的扫描增加了许多;

那么现在有了ICP,mysql在读取people表前,继续检查满足lastname和firstname条件的记录,

那么ICP的优化在引擎层就能够过滤掉大量的数据,这样无疑能够减少了对base table和mysql server的访问次数,我们可以看到mysql优化器在也越来越智能,这对mysql fans也该是一个好消;由于这个功能在5.6出现,很想迫不及待的测试一把,但官网上还没有提供下载5.6,上面的例子也是在文档上获得,没有具体的实践意义。

时间: 2025-01-06 16:12:00

有点小激动-Index Condition Pushdown Optimization的相关文章

浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化

原文:浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化   本文出处:http://www.cnblogs.com/wy123/p/7374078.html(保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他)     ICP优化原理 Index Condition Pushdown (ICP),也称为索引条件下推

MySQL Index Condition Pushdown(ICP)性能优化方法实例

  这篇文章主要介绍了MySQL Index Condition Pushdown(ICP)性能优化方法实例,本文讲解了概念介绍.原理.实践案例.案例分析.ICP的使用限制等内容,需要的朋友可以参考下 一 概念介绍 Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式. a 当关闭ICP时,index 仅仅是data access 的一种访问方式,存储引擎通过索引回表获取的数据会传递到MySQL Ser

myrocks index condition pushdown

title: MySQL · myrocks · myrocks index condition pushdown author: 张远 index condition pushdown Index condition pushdown(ICP)是直到mysql5.6才引入的特性,主要是为了减少通过二级索引查找主键索引的次数.目前ICP相关的文章也比较多,本文主要从源码角度介绍ICP的实现.讨论之前,我们先再温习下. 以下图片来自mariadb 引入ICP之前 引入ICP之后 再来看个例子 CR

MySQL · myrocks · myrocks index condition pushdown

index condition pushdown Index condition pushdown(ICP)是直到mysql5.6才引入的特性,主要是为了减少通过二级索引查找主键索引的次数.目前ICP相关的文章也比较多,本文主要从源码角度介绍ICP的实现.讨论之前,我们先再温习下. 以下图片来自mariadb 引入ICP之前 引入ICP之后 再来看个例子 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` char(8) DEFAULT NULL,

MySQL Index Condition Pushdown(ICP)性能优化方法实例_Mysql

一 概念介绍 Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式. a 当关闭ICP时,index 仅仅是data access 的一种访问方式,存储引擎通过索引回表获取的数据会传递到MySQL Server 层进行where条件过滤. b 当打开ICP时,如果部分where条件能使用索引中的字段,MySQL Server 会把这部分下推到引擎层,可以利用index过滤的where条件在存储引擎层进行

【MySQL】MySQL5.6新特性之Index Condition Pushdown

一 概念介绍    Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式.a 当关闭ICP时,index 仅仅是data access 的一种访问方式,存储引擎通过索引回表获取的数据会传递到MySQL Server 层进行where条件过滤.b 当打开ICP时,如果部分where条件能使用索引中的字段,MySQL Server 会把这部分下推到引擎层,可以利用index过滤的where条件在存储引擎层进

【MySQL】性能优化之 Index Condition Pushdown

一 概念介绍    Index Condition Pushdown (ICP)是MySQL 5.6 版本中的新特性,是一种在存储引擎层使用索引过滤数据的一种优化方式.a 当关闭ICP时,index 仅仅是data access 的一种访问方式,存储引擎通过索引回表获取的数据会传递到MySQL Server 层进行where条件过滤.b 当打开ICP时,如果部分where条件能使用索引中的字段,MySQL Server 会把这部分下推到引擎层,可以利用index过滤的where条件在存储引擎层进

MySQL · 特性分析 · Index Condition Pushdown (ICP)

前言 上一篇文章 提过,我们在之后的文章中会从 optimizer 的选项出发,系统的介绍 optimizer 的各个变量,包括变量的原理.作用以及源码实现等,然后再进一步的介绍优化器的工作过程(SQL 语句扁平化处理.索引选择.代价计算.多表连接顺序选择以及物理执行等内容),本期我们先看一下众所周知的 ICP,官方文档请参考这里. ICP 测试 首先,咱们来看一下打开 ICP 与关闭 ICP 之间的性能区别,以下是测试过程: 准备数据: create table icp(id int, age

微软要给XboxOne配虚拟头盔?想想都有点小激动呢

配图源自网络北京时间12月21日消息,消息人士透露,微软正在为XboxOne游戏机开发类似OculusRift的虚拟现实头戴设备.今年3月,微软Xbox业务负责人菲尔斯班瑟(PhilSpnencer)在接受采访时表示:我认为这样的技术很有趣.毫无疑问,我们开发这一技术已有一段时间.而根据VRFocus网站的报道,微软甚至已向部分游戏开发者提供了XboxOne虚拟现实头戴设备.根据该网站的报道:这一开发者套装目前已经在从事XboxOne游戏开发的开发者之间'流传'.多家游戏工作室已经确认,他们正在