多范围读取优化

Posted gulingjingguai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多范围读取优化相关的知识,希望对你有一定的参考价值。

对于辅助索引来说,我们需要查询的字段是辅助索引的字段,在辅助索引找到对应的主键(放到buffer中),然后将主键进行排序。根据排序后的主键去查询磁盘表,这样

通过将随机IO变成顺序IO来减少磁盘IO的次数。

对于MyISAM也是这样的原则,首先根据数据行的id对得到索引字段字段进行排序,而非主键,这是MyISAM和InnoDB的区别导致的。

使用场景:

  对于InnoDB和MyISAM来说,主要用于索引范围扫描和表的等连接操作。

当然,对于覆盖索引,若要查询的字段在索引里,无需查询磁盘表时,就不必进行此优化。

以上是关于多范围读取优化的主要内容,如果未能解决你的问题,请参考以下文章

浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化

mysql 优化

Multi-Range Read优化

为啥读取“从 1 个范围内读取 2972​​ 个标记”比读取“从 126 个范围内读取 238 个标记”更快

Mysql查询优化——范围搜索

Presto 性能优化点