比如 select a.a1 a.a2 from A a inner join B b on b.aid=a.id where b.b1='bn1'
和
select a.a1,a.a2 from A a ,B b where b.aid=a.id and b.b1='bn1'以上两个语句哪个效率高些呢?
特别是当查询条件多的时候,哪个查询效率高些呢?
和
select a.a1,a.a2 from A a ,B b where b.aid=a.id and b.b1='bn1'以上两个语句哪个效率高些呢?
特别是当查询条件多的时候,哪个查询效率高些呢?
你explain一下看看执行计划
EXPLAIN SQL语句,看看结果
一样!MYSQL会进行优化,这样 from A a inner join B b on b.aid=a.id 就等同于 from A a ,B b where b.aid=a.id
如果索引情况相同,效率相同,SQL标准不同,写法不同
EXPLAIN SQL语句,看看结果
因为inner join是后来的sql标准才开始支持的。
大部分DBMS都会将这两种sql写法翻译成同一种sql。所以,基本上效率是一样的。
打个比方,oracle以前使用(+)来表示外连接,后来又有了标准的left outer join和right outer join,两种写法,最终在内部都是一个sql语句。效率基本上是一样的。
select a.a1 a.a2 from A a inner join B b on b.aid=a.id where b.b1='bn1'
效率高一些