龙空技术网

sql语句中in和exists的使用场景

我叫杨过 1420

前言:

现在看官们对“sql语句中in和的区别”大致比较关切,姐妹们都需要学习一些“sql语句中in和的区别”的相关文章。那么小编同时在网上网罗了一些关于“sql语句中in和的区别””的相关资讯,希望朋友们能喜欢,大家一起来了解一下吧!

很尴尬的是,研究了好久发现很难从底层原理来解读,本来写到一半了,但是我还是决定删除掉。

作为一名java开发工程师,对sql底层不是很了解,在网上查了一些资料,发现对这个问题的解答大同小异,基本都无法让人信服,总感觉不太对。

但是从应用都角度来说,可以给出一个结论:

1、如果A表比B表大,用in

2、如果B表比A表大,用exists

3、如果二者大小相当,性能没啥差别

如果是not in的话,不会用到索引,如果子查询中有null,则最终无结果

但是not exists 会用到,并且子查询有null并不影响最终结果

标签: #sql语句中in和的区别