加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

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

发布时间:2019-07-23 05:35:46 所属栏目:移动互联 来源:佚名波波说运维
导读:概述 本日首要先容一下mysql的ICP特征,也许许多人都没听过,这里用一个尝试来辅佐各人加深一下领略。 一、Index_Condition_Pushdown Index Condition Pushdown (ICP)是MySQL用索引去内外取数据的一种优化。假如禁用ICP,引擎层会穿过索引在基表中探求数据

以上面的查询为例,在没有ICP时,起首通过索引前缀从存储引擎中读出224条first_name为Mary的记录,然后在server段用where筛选last_name的like前提;而启用ICP后,因为last_name的like筛选可以通过索引字段举办,那么存储引擎内部通过索引与where前提的比拟来筛选掉不切合where前提的记录,这个进程不必要读出整笔记录,同时只返回给server筛选后的6笔记录,因此进步了查询机能。

1) 不行使ICP时,怎样举办索引扫描

(1)当storage engine读取下一行时,起首读取索引元组(index tuple),然后行使索引元组在基表中(base table)定位和读取整行数据。

(2) sever层评估where前提,假如该行数据满意where前提则行使,不然扬弃。

(3)执行第1步,直到最后一行数据。

2)行使ICP时,怎样举办索引扫描

(1)storage engine从索引中读取下一条索引元组。

(2) storage engine行使索引元组评估下推的索引前提。假如没有满意where前提,storage engine将会处理赏罚下一条索引元组(回到上一步)。只有当索引元组满意下推的索引前提的时辰,才会继承去基表中读取数据。

(3)假如满意下推的索引前提,storage engine通过索引元组定位基表的行和读取整行数据并返回给server层。

(4)server层评估没有被下推到storage engine层的where前提,假如该行数据满意where前提则行使,不然扬弃。

用两张图来做声名:

封锁ICP

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

在不支持ICP的体系下,索引仅仅作为data access行使。

开启ICP

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

在ICP优化开启时,在存储引擎端起首用索引过滤可以过滤的where前提,然后再用索引做data access,被index condition过滤掉的数据不必读取,也不会返回server端。

【编辑保举】

  1. 详解MySQL数据库JSON范例:用法、意义、内置函数
  2. 怎样成为数据库打点员(DBA)
  3. 数据库版本怎样单独进级,而且将原稀有据迁徙已往
  4. 新特征解读 | MySQL 5.7进级到MySQL 8.0的留意事项
  5. 保举一款MySQL高可用复制打点器材——Orchestrator先容
【责任编辑:华轩 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

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

热点阅读