Mysql join 算法原理

Posted MISAYAONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql join 算法原理相关的知识,希望对你有一定的参考价值。

数据库基础(七)Mysql Join算法原理 - 知乎 (zhihu.com) 讲解较细

join算法分析 - 91洲际哥 - 博客园 (cnblogs.com) 比较全

(262条消息) MySQL 查询优化之 Block Nested-Loop 与 Batched Key Access Joins_风中清淡-CSDN博客

 

Simple nested loop join

两张表都没有索引,直接硬扫

 

Index nested loop join 

有一张表是主键索引,直接利用主键进行匹配,时间限制在于主键索引树的高度

 

block nested loop join 

两张表都没有索引,但是申请了一块join_buffer内存,存储一批需要join的key,与另一张表进行join,减少了一张表的扫表次数

 

batch access key join

一张表虽然有索引,但是是二级索引,同样使用了join_buffer,将一批key传到join_buffer,调用MRR 接口,对key进行排序,回表从主键索引中取数据。由于读数据是顺序的磁盘IO,所以更快。

 

 

以上是关于Mysql join 算法原理的主要内容,如果未能解决你的问题,请参考以下文章

Mysql(19)—join关联查询的原理以及优化手段

join算法原理和优化

深入理解Oracle表:三大表连接方式详解之Hash Join的定义,原理,算法,成本,模式和位图...

ForkJoinPool线程池工作原理

Java技术指南「并发编程专题」Fork/Join框架基本使用和原理探究(原理及源码篇)

CodingLabs - MySQL索引背后的数据结构及算法原理