SQL查詢時,如何對where後的or進行優化

SQL查詢時,如何對where後的or進行優化

大家都知道,在sql查詢的過程中,where帶有or條件,且條件比較複雜的時候,sql的查詢速度明顯會降低,比如我在實際應用中就遇到這樣一個問題:寫了一個條件帶or的複雜sql,發現查詢速度遠不如人意,一條10000條數據不到的表,居然需要花費近4s的時間,顯然是不符合要求的(至於爲什麼會這麼慢,這個在此就不做過多解釋),這時候就要考慮到怎樣進行優化:

把or 變成兩個查詢語句,中間用 union all 進行連接

比如:
select * from t1 where 條件1 or 條件2
------>
select * from t1 where 條件1 union all select * from t1 where 條件2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章