MySQL性能调优---BKA

本文介绍了MySQL5.6中引入的BKA算法,一种用于提高表join性能的技术。BKA通过JoinBuffer收集相关列值并批量提交给引擎,特别适用于非主键索引的连接。文章详细解释了BKA的工作步骤,并提供了如何开启和调优BKA的案例,强调了合理索引设计对BKA性能的关键作用。
摘要由CSDN通过智能技术生成

1.BKA原理介绍

        MySQL 5.6版本开始增加了提高表join性能的Batched Key Access (BKA)算法。BKA是对于多表join语句,当MySQL使用索引访问第二个join表的时候,使用一个join buffer来收集第一个操作对象生成的相关列值。BKA构建好key后,批量传给引擎层做索引查找。key是通过MRR接口提交给引擎的,这样,MRR使得查询更有效率。

        如果外部表扫描的是主键,那么表中的记录访问都是比较有序的,但是如果联接的列是非主键索引,那么对于表中记录的访问可能就是非常离散的。因此对于非主键索引的联接,Batched Key Access Join算法将能极大提高SQL的执行效率。BKA算法支持内连接,外连接和半连接操作,包括嵌套外连接。

Batched Key Access Join算法工作步骤

        1) 将外部表中相关的列放入Join Buffer中。

        2) 批量的将Key(索引键值)发送到Multi-Range Read(MRR)接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值