MySQL Join算法与调优白皮书(二)

上一篇文章(公众账号回复join可见)收到了老叶的反馈,希望Inside君可以分多次完成对于Join的讲解。其实Inside君已经尽力分多篇文章进行分析。无奈要说清楚Join真的是不太容易,所以有劳各位小伙伴们耐心看完吧。Inside君争取三到四次可以讲完MySQL的Join,最后也会毫不吝啬地放出全文的PDF的下载版本。

同时放上Inside君最爱的李宗盛大哥的歌——《山丘》,献给关注Inside君,也是最有品味的小伙伴们:

Index Nested-Loop Join

(接上篇,公众账号回复join可见)由于访问的是辅助索引,如果查询需要访问聚集索引上的列,那么必要需要进行回表取数据,看似每条记录只是多了一次回表操作,但这才是INLJ算法最大的弊端。首先,辅助索引的index lookup是比较随机I/O访问操作。其次,根据index lookup再进行回表又是一个随机的I/O操作。所以说,INLJ最大的弊端是其可能需要大量的离散操作,这在SSD出现之前是最大的瓶颈。而即使SSD的出现大幅提升了随机的访问性能,但是对比顺序I/O,其还是慢了很多,依然不在一个数量级上。例如下面的这个SQL语句:

SELECT COUNT(*) FROM part,lineitem

WHERE l_partkey = p_partkey

AND p_retailprice > 2050

       AND l_discount > 0.04;

</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地表最强菜鸡

你的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值