2010-04-29 44 views
6

以爲我會問有知識的StackOverflow社區今天在我的腦海裏的問題,我似乎無法找到答案。SQL「IN」語句與使用「OR」之間是否有任何性能差異?

「IN」或使用「OR」之間是否存在性能差異或優勢?

即,是

SELECT類型與類型WHERE typecat IN( 'ABC', '高清')

優於

SELECT類型與類型WHERE typecat = 'ABC' OR typecat = '高清'

添加:使用SQL Server 2008

+1

什麼服務器? SQL Server,MySQL,Postgres,Oracle ...? – 2010-04-29 19:50:22

+2

我曾經問過這個問題:http://stackoverflow.com/questions/2343242/sql-where-field-in-vs-where-field-with-multiple-ors – froadie 2010-04-29 19:54:20

+0

對不起,使用SQL Server 2008. – 2010-04-29 20:07:53

回答

1

如果我沒有記錯,SQL Server會將您擁有的IN語句轉換爲OR語句。

1

沒有,沒有性能差異。優化器負責處理它。

2

這完全取決於您正在使用的SQL產品,您還沒有說明。我經常使用的一個RDBMS不能使用OR版本的索引。

+0

小心揭示所述RDBMS的名稱? – 2010-04-29 19:54:02

+0

R:基地(從過去爆炸)。 – 2010-04-29 20:04:39

+0

對不起,使用SQL Server 2008。 – 2010-04-29 20:07:21

相關問題