0
点赞
收藏
分享

微信扫一扫

Mysql 45讲学习笔记(三十五)优化join语句


一.Multi-Range Read

  • 优化点:尽量使用顺序读盘
  • 回表:InnoDB在普通索引a上查到主键id后,根据一个主键id的值在主键索引上去查整行数据的过程。
  • 随着a的值递增顺序查询的话,id的值就会变成随机,那么就出现随机访问,性能比较差,但是调整查询的顺序,还是能够加速(主键顺序查询

二.MRR 优化的设计思路

  • 根据索引a,定位满足条件的记录,将id值放入read_rnd_buffer中
  • 将read_rnd_buffer中的id进行递增排序
  • 排序后的id数组,依次到主键id索引中查记录,并作为结果返回

MRR提升性能核心:这条查询语句在索引a上做一个范围查询多值查询

然后再根据主键索引查询数据,才能体现出顺序性的优势

三.大表join

  • 大表join操作对IO有影响,但是语句执行结束后,对IO影响也结束
  • 对Buffer Pool的影响是持续的,需要依靠后面的查询请求慢慢恢复内存命中率
举报

相关推荐

0 条评论