2012-01-16 51 views
2

查詢大表(> 150萬行)3次或在同一查詢中放入3個條件會更好嗎?樣本where條款如下。有類似或更復雜的where子句。我的直覺是把他們全部在相同的where。但需要來自社區的一些意見。提前致謝。查詢大表

where (a =1 or b=1) and (a=2 or b=3) and (c=1 or d=3) 
+3

您的邏輯可能與AND和OR相反 - 您可以檢查嗎? –

+0

只需運行查詢並親自體驗 –

+0

感謝你們所有人的時間和精力。 –

回答

4

單次訪問數據庫是絕對可取的。確保你索引a,b,cd列,你應該沒問題。

0

將它們全部放在同一個where子句中通常會更快。但是,每個查詢都是不同的,並且確保您檢查每個查詢的查詢計劃,以確保您可以獲得最佳性能。

0

這一切都取決於你的模式(數據類型,鍵,指示等),一般來說我會說你會更好的將所有的條件添加到相同的where子句,所以查詢優化器有儘可能多的信息與...合作。找出最好的方法是運行一些測試,看看哪種方法可以在數據/模式下獲得最佳性能。

0

把它放在一個查詢。

除了降低開銷之外,您將通過這種方式消除重複項。如果您有一條符合多個條件的行,那麼如果您查詢多次,它將在最終結果集中顯示兩次。