以为我会问有知识的StackOverflow社区今天在我的脑海里的问题,我似乎无法找到答案。SQL“IN”语句与使用“OR”之间是否有任何性能差异?
“IN”或使用“OR”之间是否存在性能差异或优势?
即,是
SELECT类型与类型WHERE typecat IN( 'ABC', '高清')
优于
SELECT类型与类型WHERE typecat = 'ABC' OR typecat = '高清'
添加:使用SQL Server 2008
以为我会问有知识的StackOverflow社区今天在我的脑海里的问题,我似乎无法找到答案。SQL“IN”语句与使用“OR”之间是否有任何性能差异?
“IN”或使用“OR”之间是否存在性能差异或优势?
即,是
SELECT类型与类型WHERE typecat IN( 'ABC', '高清')
优于
SELECT类型与类型WHERE typecat = 'ABC' OR typecat = '高清'
添加:使用SQL Server 2008
如果我没有记错,SQL Server会将您拥有的IN
语句转换为OR
语句。
没有,没有性能差异。优化器负责处理它。
这完全取决于您正在使用的SQL产品,您还没有说明。我经常使用的一个RDBMS不能使用OR版本的索引。
小心揭示所述RDBMS的名称? – 2010-04-29 19:54:02
R:基地(从过去爆炸)。 – 2010-04-29 20:04:39
对不起,使用SQL Server 2008。 – 2010-04-29 20:07:21
什么服务器? SQL Server,MySQL,Postgres,Oracle ...? – 2010-04-29 19:50:22
我曾经问过这个问题:http://stackoverflow.com/questions/2343242/sql-where-field-in-vs-where-field-with-multiple-ors – froadie 2010-04-29 19:54:20
对不起,使用SQL Server 2008. – 2010-04-29 20:07:53