MySQL 里有個(gè)東西叫 MRR,全稱(chēng)「Multi-Range Read Optimization」。
簡(jiǎn)單說(shuō),MRR 通過(guò):
- 把「隨機(jī)磁盤(pán)讀」,轉(zhuǎn)化為「順序磁盤(pán)讀」
從而:
- 提高了磁盤(pán)讀取的性能
至于:
- 為什么要把隨機(jī)讀轉(zhuǎn)化為順序讀?
- 怎么轉(zhuǎn)化的?
- 為什么順序讀就能提升讀取性能?
咱們開(kāi)始吧。
磁盤(pán):苦逼的底層勞動(dòng)人民
執(zhí)行一個(gè)范圍查詢:
mysql > explain select * from stu where age between 10 and 20;
+----+-------------+-------+-------+------+---------+------+------+-----------------------+
| id | select_type | table | type | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+----------------+------+------+-----------------------+
| 1 | SIMPLE | stu | range | age | 5 | NULL | 960 | Using index condition |
+----+-------------+-------+-------+----------------+------+------+-----------------------+






