Range和Cell对象的一些属性和方法应用示例(cells与range)
651
2022-05-28
Multi-Range Read优化(MRR)。这个优化的主要目的是尽量使用顺序读盘。
MRR优化的设计思路。此时,语句的执行流程变成了这样:
根据索引a,定位到满足条件的记录,将id值放入read_rnd_buffer中;
将read_rnd_buffer中的id进行递增排序;
排序后的id数组,依次到主键id索引中查记录,并作为结果返回。
这里,read_rnd_buffer的大小是由read_rnd_buffer_size参数控制的。如果步骤1中,read_rnd_buffer放满了,就会先执行完步骤2和3,然后清空read_rnd_buffer。之后继续找索引a的下个记录,并继续循环。
另外需要说明的是,如果你想要稳定地使用MRR优化的话,需要设置set optimizer_switch="mrr_cost_based=off"。(官方文档的说法,是现在的优化器策略,判断消耗的时候,会更倾向于不使用MRR,把mrr_cost_based设置为off,就是固定使用MRR了。
MySQL
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。