join语句原理






可以尝试修改join_buffer_size 默认大小是256k
MySQL 8.0.18以上版本默认采用Hash Jion
hash join的大致原理为:选择占用空间较小的表t1(不一定是行数)作为驱动表,计算其join字段的hash值,在内存中build一个hash table,将t1的join字段的hash值存放至hash table。然后对被驱动表t2的join字段计算hash值,并与内存中的hash table进行查找匹配。
hash join通过参数join_buffer_size来控制内存中的使用大小,超出join_buffer_size的设置会在磁盘上创建临时文件来处理
本文探讨了MySQL中join操作的优化,特别是HashJoin的实现原理。HashJoin通过设置join_buffer_size参数控制内存使用,先将小表的join字段构建哈希表,然后遍历大表进行匹配。当内存不足时,会将数据写入磁盘临时文件。理解这些概念有助于提升SQL查询性能。
1380

被折叠的 条评论
为什么被折叠?



