我有两个表,一个有60个lacs记录作为主数据。另一个表格包含一些搜索条件。现在我需要进行内部联接。我有两个选择。主数据内连接条件或条件内连接主数据。哪一个会更有效率?
换句话说,A加入B在某些条件下可以比B加入A更有效吗?
答案 0 :(得分:1)
根据SQL标准,它们是等效的。实际上,数据库引擎的查询优化器可以自由地将其重写为运行速度更快的表单。
在我遇到的大多数数据库引擎中,它们完全等效。
但是,如果你在讨论OUTER JOIN,那么左/右排序当然很重要,不仅仅是出于性能原因。
答案 1 :(得分:0)
除非您在提示中明确提供JOIN
,否则FORCE ORDER
订单无关紧要。
优化器将选择它认为最合适的顺序。
如果您询问实际计划中的连接顺序,那么是,连接顺序对于嵌套循环或散列连接非常重要。
在嵌套循环的情况下,最里面的表应该是较大的表,最外面的表应该是较小的表。
如果是散列连接,则探测的表应该是较大的一个,散列的应该是较小的一个。