共计 287 个字符,预计需要花费 1 分钟才能阅读完成。
在 MySQL 8.0.18 中,增加了 Hash Join 新功能,它适用于未创建索引的字段,做等值关联查询。在之前的版本里,如果连接的字段没有创建索引,查询速度会是非常慢的,优化器会采用 BNL(块嵌套)算法。
Hash Join 算法是把一张小表数据存储到内存中的哈希表里,并逐行去匹配大表中的数据,计算哈希值并把符合条件的数据,从内存中返回客户端。
用 sysbench 生成 4 张表,并删除默认的 k 字段索引。
我们用 explain format=tree 命令可以查看到已经使用到 hash join 算法。
但目前 8.0.18 版本,仅支持 join。left join 和 right join 失效,这里请注意。
:
正文完
星哥玩云-微信公众号