A JOIN B与B JOIN A之间的区别

时间:2017-05-17 13:34:22

标签: mysql performance join

我正在重新提出这个问题,因为我认为在没有满意答案的情况下,它被错误地关闭了: 原始问题:    在处理大型数据集时,与B相比,表A的行数要少得多,将表A与B和B连接到A是否存在差异? A JOIN B vs B JOIN A

2 个答案:

答案 0 :(得分:1)

因此,join将从两个表中获取匹配记录,因此逻辑上没有区别

答案 1 :(得分:0)

是。可能会有很大的不同。     在进行常规JOIN时,MySQL将尝试自动检测加入2个表的顺序。但是,有时候,它决定走的方式不是最好的。如果大表具有索引而小表不具有(或者是tempTable),则尤其如此。 MySQL倾向于使用索引而不是使用未索引的表作为其主表。     最近我有一个查询需要几秒钟。这是一个A JOIN B的案例,其中A是BIG并且索引,B很小。     当我更新为A RIGHT JOIN B时,性能提升到几分之一秒。