sql用什么替代or
生活随笔
收集整理的這篇文章主要介紹了
sql用什么替代or
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(1) 用UNION替換OR (適用于索引列)
通常情況下, 用UNION替換WHERE子句中的OR將會起到較好的效果. 對非索引列使用OR將造成全表掃描. 注重, 以上規(guī)則只針對多個索引列有效. 假如有column
沒有被索引, 查詢效率可能會因為你沒有選擇OR而降低. 在下面的例子中, LOC_ID 和REGION上都建有索引.
高效:
SELECT LOC_ID , LOC_DESC, REGION FROM LOCATION WHERE LOC_ID = 10 UNION SELECT LOC_ID , LOC_DESC ,REGION FROM LOCATION WHERE REGION = “MELBOURNE”
低效:
SELECT LOC_ID , LOC_DESC, REGION FROM LOCATION WHERE LOC_ID = 10 OR REGION = “MELBOURNE”
假如你堅持要用OR, 那就需要返回記錄最少的索引列寫在最前面.
(2) 用IN來替換OR
總結(jié)
以上是生活随笔為你收集整理的sql用什么替代or的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么时候会引起索引失效
- 下一篇: mysql全表扫描和用索引的区别