搜尋此網誌

2019年11月6日 星期三

SQL效能優化


  • join多個table時會從右邊開始處理,所以資料量越大應擺在越左邊,資料量多→少
  • 條件處理是從下往上,所以越能減少資料量的條件越往下
  • join多個table時在column前加上table alias
  • 使用not exist取代not in
  • between效能等同>= and <=
  • 使用index提升效能
  • 有index的column避免數學運算及使用not,會導致full scan
  • 刪除整張table使用truncate代替delete(truncate會重置auto increment, delete不會)
  • oracle分頁查詢:
select a.*
from (select ROWNUM rn, b.*
      from (select * from table s order by coulmn asc ) b
      where ROWNUM <= page*size) a
where a.rn >= (page-1)*size;