这两者之间是否有性能差异?
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 = ?
答案 0 :(得分:5)
我猜他们会完全相同,但你可以通过对两者运行EXPLAIN并查看实际计划来找到答案。
通常使用像SQL这样的声明性语言,您将无法找到如此简单的银弹优化。如果一个优于其他优点,那么优化器可能会识别它并运行使用最有效技术的查询计划。