join的实现原理

simple Nested-Loop Join

在这里插入图片描述

Index Nested-Loop Join

在这里插入图片描述

Block Nested-Loop Join

在这里插入图片描述
(1)Join Buffer会缓存所有参与查询的列而不是只有Join的列。
(2)可以通过调整join_buffer_size缓存大小
(3)join_buffer_size的默认值是256K,join_buffer_size的最大值在MySQL 5.1.22版本前是4G-1,而之后的版本才能在64位操作系统下申请大于4G的Join Buffer空间。
(4)使用Block Nested-Loop Join算法需要开启优化器管理配置的optimizer_switch的设置block_nested_loop为on,默认为开启。
(5) show variables like ‘%optimizer_switch%’;

猜你喜欢

转载自blog.csdn.net/weixin_39370859/article/details/114379739