SQL 一個【OR】屬性給你帶來了怎樣的麻煩

     關於 數據庫  or   的用法,就不說了     講講OR對數據庫性能有多大的殺傷力,之後線上的項目若是是數據量很大的表,必定不要用OR來查詢數據庫

     今天在工做的時候,同事遇到了SQL優化的問題,讓我幫忙看看,以後一個長達16秒的查詢,優化到不到一秒!     性能

    SQL: 優化

 

用時:五秒    spa

 

我檢查一下   JK_Customer  這張表的數據, 有三百多萬條數據    還好3d

 

主鍵是確定有索引的    想查詢快的話,加索引唄blog

加索引後: 狀況沒有變化   索引

 

這狀況就很明顯了,OR這個玩意兒  破壞了個人索引:我來試試分開查詢im

 

 瞬間完成,OK 。。d3

 

事實證實了,OR破壞了的個人索引  致使查詢變慢了  總結

 

 那麼咱們就不要怕麻煩  用UNION ALL來代替咱們的OR

 

總結: or會破壞索引 

 

   

 若是A表很大的狀況下,應改爲: 

     

相關文章
相關標籤/搜索