MRR 「Multi-Range Read」初步理解 对where条件拆分,减少通过索引查到过多无用的数据;查询索引页叶子节点的主键ID后不是直接读取数据,而是把满足条件的主键ID进行排序,然后在进行数据查找。 MySQL 5.6开始支持Multi-Range Read(MRR)优化。目的是为了减少磁盘的随机访问,并且将随机访问转化为较为顺序的数据访问,这对IO-bound类型的SQL查询语句可带来性能极大的提升。MRR优化可适用于rangeref,eq_ref类型的查询 MRR优化的好处: a)MRR使数据访问变得较为顺序。在查询辅助索引时,首先根据得到的查询结果按照主键进行排序,并按照主键排序的顺序进行书签查找 b)减少缓冲池中页被替换的次数 c)批量处理对键值的查询操作 对于InnoDB和MyISAM存储引擎的范围查询和JOIN查询操作,MRR工作方式如下 a)将查询得到的辅助索引键值存放在一个缓存中,这是缓存中的数据是根据辅助索引键值排序的 b)将缓存中的键值根据RowID进行排序 c)根据RowID的排序顺序来访问实际的数据文件 Index Condition Pushdown (ICP)是MySQL用索引去表里取数据的一种优化。如果禁用ICP,引擎层会穿过索引在基表中寻找数据行,然后返回给MySQL Server层,再去为这些数据行进行WHERE后的条件的过滤。ICP启用,如果部分WHERE条件能使用索引中的字段,MySQL Server 会把这部分下推到引擎层。存储引擎通过使用索引条目,然后推索引条件进行评估,使用这个索引把满足的行从表中读取出。ICP能减少引擎层访问基表的次数和MySQL Server 访问存储引擎的次数。 ICP 「Index Condition Pushdown」初步理解在通过辅助索引查询时进一步过滤where其他条件,前提是where条件的数据在该索引中可以获取到。 备注个人理解,这两种优化前提都依赖索引,ICP依赖的是联合索引。
MySQL MRR和ICP介绍
来源:这里教程网
时间:2026-03-01 11:54:27
作者:
编辑推荐:
- MySQL MRR和ICP介绍03-01
- MySQL高可用架构之MHA 原理与实践03-01
- 老司机也必须掌握的MySQL优化指南03-01
- 为何Binlog中同一个事务的event时间点会乱序?03-01
- mysql_config_editor用法举例03-01
- Oracle 认证下载03-01
- MySQL5.6 PERFORMANCE_SCHEMA 说明03-01
- Mysql入门教程第一讲:什么是MySQL?03-01
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- MySQL高可用架构之MHA 原理与实践
MySQL高可用架构之MHA 原理与实践
26-03-01 - 老司机也必须掌握的MySQL优化指南
老司机也必须掌握的MySQL优化指南
26-03-01 - Oracle 认证下载
Oracle 认证下载
26-03-01 - Mysql入门教程第一讲:什么是MySQL?
Mysql入门教程第一讲:什么是MySQL?
26-03-01 - 一份超详细的MySQL高性能优化实战总结
一份超详细的MySQL高性能优化实战总结
26-03-01 - 关于mysql 5.7重置密码
关于mysql 5.7重置密码
26-03-01 - 2018 ACMUG全球年会盛典在京圆满落幕,开启数据库产业创新变革之路新征程(附PPT)
- MySQL数据备份之mysqldump使用
MySQL数据备份之mysqldump使用
26-03-01 - Innodb undo之 undo物理结构的初始化
Innodb undo之 undo物理结构的初始化
26-03-01 - 事故现场:MySQL 中一个双引号的错位引发的血案
事故现场:MySQL 中一个双引号的错位引发的血案
26-03-01
