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的设置会在磁盘上创建临时文件来处理