EXISTS 和 IN 的查询效率问题

mysql使用总结:

一:EXISTS 和 IN 的查询效率问题

1:当a表的数据大于(a > b)b表中的数据时 用 IN  > EXISTS 的效率。

SELECT 
* 
FROM a 
WHERE id IN (
SELECT id FROM b 
)

2:当a表的数据小于  ( a < b )  b表中的数据时 用 EXISTS  >  IN 的效率。

SELECT 
* 
FROM  a  
WHERE  EXISTS(
SELECT 1 FROM b  WHERE a.xx = b.xx
)

 

3:  当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用.

Not Exist用到子表中的索引进行查询,所以无论两个表中哪个表大,Not exists 都要比Not in 要快。

原文地址:https://www.cnblogs.com/dw3306/p/10969462.html