2016/9/4

增進SQL查詢速度的方式 , SARGs


  • 最佳化where子句需符合 SARGs規範 , 否則DB易掃描所有資料影響查詢速度 ,  查詢速度也跟索引有關 , 為能利用索引搜尋資料 , 就要下正確的SQL方式 , 符合 SARGs規範 
  • Like不用%開頭當搜尋條件
    • 錯誤 select * from A where B like ' %2 '
  • 不對欄位做運算
    • 錯誤 select * from A where B+1='2'
    • 正確 select * from A where B='2'
  • 負向查詢
    • 錯誤 select * from A where B != 0
    • 正確 select * from A where B>0 and B<0
  • 不要對資料欄位使用函數
    • 錯誤1 select * from A where substring(B,1,1)='3'
    • 正確1 select * from A where B like '3%'
    • 正確1 select * from A where B >='3' and B < '4'
    • 錯誤2 select * from A where abs(A-100) <  1
    • 正確2 select * from A where B > 99 and B < 101 
  • 使用 OR 運算子查詢時 需每個欄位皆有索引 , 才能增進查詢速度

沒有留言:

張貼留言

test2