0926mysql中MRR的用法
时间:2021-07-01 10:21:17
帮助过:27人阅读
,提高查询效率。
三 相关参数 我们可以通过参数 optimizer_switch 的标记来控制是否使用MRR,当设置mrr=on时,表示启用MRR优化。mrr_cost_based 表示是否通过 cost base的方式来启用MRR.如果选择mrr=on,mrr_cost_based=off,则表示总是开启MRR优化。
参数read_rnd_buffer_size 用来控制键值缓冲区的大小。
四 案例介绍当开启MRR时
- MySQL > explain select * from tbl where tbl.key1 between 1000 and 2000;
- +----+-------------+-------+-------+---------------+------+---------+------+------+-------------------------------------------+
- | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
- +----+-------------+-------+-------+---------------+------+---------+------+------+-------------------------------------------+
- | 1 | SIMPLE | tbl | range | key1 | key1 | 5 | NULL | 960 | Using index condition; Using MRR |
- +----+-------------+-------+-------+---------------+------+---------+------+------+-------------------------------------------+
- 1 row in set (0.03 sec)
五 MRR的使用限 MRR 适用于以下两种情况。
1 range access
2 ref and eq_ref access, when they are using Batched Key Access
六 参考文章 《MariaDB Multi-Range Read Optimization》
《MySQL Multi-Range Read Optimization》
《Multi Range Read (MRR) in MySQL 5.6 and MariaDB 5.5》
0926mysql中MRR的用法
标签:optimizer mysq 不同 div 排序 优化 结果 cost when