SQL in any all exists
2019-02-10 本文已影响1人
神农架村姑
in和exists的用法
在小表中,两种方法的效率都差不多
当后表的记录数量非常大的时候,选用exists比in要高效很多.
IN()只执行一次,它查出B表中的所有id字段并缓存起来。之后,检查A表的id是否与B表中的id相等,如果相等则将A表的记录加入结果集中,直到遍历完A表的所有记录。可以看出,当B表数据较大时不适合使用in(),因为它会B表数据全部遍历一次
Exists()会执行A.length次,它并不缓存exists()结果集,因为exists()结果集的内容并不重要。EXISTS用于检查subquery是否至少会返回一行数据,该subquery实际上并不返回任何数据,而是返回True或False。
in和any all
in 等于 =any
not in 等于 !=all