知识点总结>>>随笔

版权声明:本文为作者原创,如有引用,请标明出处。 https://blog.csdn.net/WiuLuS/article/details/83037330

目录

小知识点总结:

mysql 中 in 和 exists 的区别


小知识点总结:

  • mysql 中 in 和 exists 的区别

如果查询的两个表大小相当,那么用in和exists差别不大。 

如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: 

例如:表A(小表),表B(大表)

1:

select * from A where cc in (select cc from B) 效率低,用到了A表上cc列的索引;

select * from A where exists(select cc from B where cc=A.cc) 效率高,用到了B表上cc列的索引。 

相反的

2:

select * from B where cc in (select cc from A) 效率高,用到了B表上cc列的索引;

select * from B where exists(select cc from A where cc=B.cc) 效率低,用到了A表上cc列的索引。

猜你喜欢

转载自blog.csdn.net/WiuLuS/article/details/83037330
今日推荐