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

上一篇下一篇

猜你喜欢

热点阅读