MRR,全称「Multi-Range Read Optimization」。
简单说:MRR 通过把「随机磁盘读」,转化为「顺序磁盘读」,从而提高了索引查询的性能。
至于:
为什么要把随机读转化为顺序读?
怎么转化的?
为什么顺序读就能提升读取性能?
咱们开始吧。
磁盘:苦逼的底层劳动人民
执行一个范围查询:
mysql > explainselect*fromstuwhereagebetween10and20;
+----+-------------+-------+-------+------+---------+------+------+-----------------------+
| id | select_type | table| type |key| key_len | ref |rows| Extra |
+----+-------------+-------+-------+----------------+------+------+-----------------------+
| 1 | SIMPLE | stu | range | age | 5 | NULL| 960 | Usingindexcondit