我正在尝试优化我的查询。
并得到使用连接缓冲区(块嵌套循环)对于其中一张表
EXPLAIN SELECT
命令。
我不知道这是什么意思。
我尝试用谷歌搜索,但没有找到解释。
Using join buffer (block nested loop)
意味着连接无法使用索引,并且它正在以困难的方式进行连接。换句话说,它正在对连接的表进行表扫描。
优化器假设连接表中可能有更多行,因此它必须将行批量加载到内存缓冲区中,然后与缓冲区中的这些行进行比较,以过滤那些与连接条件匹配的行。然后清空连接缓冲区,获取下一个行块,然后重试。
如果你看到Using join buffer (block nested loop)
在 EXPLAIN 报告中,您应该弄清楚是否可以向连接表添加索引,以使其能够更有效地查找匹配行。这与计算查询中第一个表的最佳索引类似。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)