我看到 sql join 内部函数总是在三个基本操作中的一些操作上运行:嵌套循环 join、merge join和hash join。
从互联网上的多篇文章中,我看到 SQL 转换据说能够严重影响性能,而且几乎总是因为它禁用了索引使用。
但对我来说,它看起来总是可以避免的:铸造可以禁用合并连接的使用(并从索引使用中获得合并的好处)但是散列连接,据说通常比合并更快,仍然可以以相同的方式使用(看起来我)。无论在散列连接(构建探针)转换的哪个阶段应用,所有必须额外完成的工作是在散列之前对所转换的列进行转换。
无论如何,散列连接通过第一个表的每一行一次,与第二个表相同。因此,从我的角度来看,应用于散列连接的连接列的转换对性能没有影响,但对转换操作本身没有影响。互联网上的人说因为不能使用索引,所以选角会严重影响性能?
我上面的想法有问题吗?谢谢你的时间
performance ×1