Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 使用ANY(或ALL)是否比手动检查ANY中的每个条目快博士后_Postgresql_Database Performance - Fatal编程技术网

Postgresql 使用ANY(或ALL)是否比手动检查ANY中的每个条目快博士后

Postgresql 使用ANY(或ALL)是否比手动检查ANY中的每个条目快博士后,postgresql,database-performance,Postgresql,Database Performance,说我想检查一下 A不等于以下任何一项:A、B、C 我可以把我的情况写成 A!=全部({A,B,C})` 我也可以把它写成 A!=A和A!=B和A!=C 我知道我在这里并没有正确地使用类型(主要是为了简洁),但这个想法应该很清楚。其中一个比另一个快吗?我还不知道如何在数据库上测试这类东西:(两个版本应该产生相同的执行计划,但是如果你想去掉那句话中的虚拟语气,你应该使用EXPLAIN检查自己 顺便说一句,我建议您使用SQL标准运算符而不是!=对于第二种变体,Postgres和大多数其他数据库中没有关

说我想检查一下

A不等于以下任何一项:A、B、C

我可以把我的情况写成

A!=全部({A,B,C}
)`

我也可以把它写成

A!=A和A!=B和A!=C


我知道我在这里并没有正确地使用类型(主要是为了简洁),但这个想法应该很清楚。其中一个比另一个快吗?我还不知道如何在数据库上测试这类东西:(

两个版本应该产生相同的执行计划,但是如果你想去掉那句话中的虚拟语气,你应该使用
EXPLAIN
检查自己


顺便说一句,我建议您使用SQL标准运算符
而不是
!=

对于第二种变体,Postgres和大多数其他数据库中没有关于短路的硬性规定。不确定如何在引擎盖下实现
ANY
。不是A=ANY('{A,B,C})`等效A!=A和A!=B和A!=CA!=ALL({A,B,C})`等效A!=A和A!=B和A!=CWoah,直到
解释
存在。谢谢!