【问题标题】:MySQL: "inner join on" performance: "where" vs adding to "on"MySQL:“inner join on”性能:“where”与添加到“on”
【发布时间】:2011-02-22 17:11:53
【问题描述】:

这两者之间有性能差异吗?

select * from tableA INNER JOIN tableB ON tableA.type = ? AND tableB.ref = tableA.id
select * from tableA INNER JOIN tableB ON tableB.ref = tableA.id WHERE tableA.type = ?

【问题讨论】:

  • 不太一样。在这种情况下,我使用 join 组合表,并且 where 语句是附加的。您所说的可能重复实际上是指在我没有做的地方做加入的工作。 @OMG

标签: mysql query-optimization


【解决方案1】:

我猜它们会是相同的,但您可以通过对它们运行 EXPLAIN 并查看实际计划来自己找出答案。

通常使用 SQL 之类的声明性语言,您将无法找到如此简单的灵丹妙药优化。如果一个比另一个有显着的性能优势,优化器可能会识别它并运行使用最有效技术的查询计划。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多