MySQL MMR

MMR全程Multi-Range Read,5.6新特性

当表很大的时候,使用二级索引进行范围的读取行回表导致磁盘的随机访问。

原理:

先查询满足条件的索引元组,然后按照数据行ID进行排序,对排序后的元组回表检索数据行

使用场景:

  1. 可以基于InnoDB和MyISAM引擎进行优化
  2. 可以基于集群多范围索引扫描表

使用MRR的时候,Extra 显示Using MRR

 

select * from user where uid > 100 
  •  在没有MMR的情况下
    先获取数据集,然后根据集合回表,返回满足的数据
  • 使用MMR情况下
    先获取数据集,然后对数据集排序(主键排序),最后回表查询完整行

 

THE END
分享
二维码
< <上一篇
下一篇>>