我正在重新提出这个问题,因为我认为在没有满意答案的情况下,它被错误地关闭了: 原始问题: 在处理大型数据集时,与B相比,表A的行数要少得多,将表A与B和B连接到A是否存在差异? A JOIN B vs B JOIN A
答案 0 :(得分:1)
因此,join将从两个表中获取匹配记录,因此逻辑上没有区别
答案 1 :(得分:0)
是。可能会有很大的不同。 在进行常规JOIN时,MySQL将尝试自动检测加入2个表的顺序。但是,有时候,它决定走的方式不是最好的。如果大表具有索引而小表不具有(或者是tempTable),则尤其如此。 MySQL倾向于使用索引而不是使用未索引的表作为其主表。 最近我有一个查询需要几秒钟。这是一个A JOIN B的案例,其中A是BIG并且索引,B很小。 当我更新为A RIGHT JOIN B时,性能提升到几分之一秒。