2023-11-08|閱讀時間 ‧ 約 2 分鐘

資料庫建立索引(index)的注意事項

索引(index)能提升搜尋比對資料時的效能


  • 會經常被where、order by、group by作為條件使用的欄位,建議可以考慮將其建立為索引 (index)。
如果該欄位的內容值的變化不多、不大的話,可以不用特地建立成索引。
例如該欄位是用來記錄目前程式執行到哪一個階段的流程flag,可能的內容值只有1、2、3等表示目前執行到三個階段中的哪一個階段。
沒有必要特地在這個欄位上建立索引,因為效果也不會多顯著。


  • 索引的欄位盡量不能為null或空值。


  • 如果where之後的條件有使用"OR",那麼所有OR的欄位都必須建立索引。
只有一個欄位有建立索引,但其他搜尋條件的欄位沒有建立索引的話,就沒有太大的意義。
因為還是要一筆一筆去比對。

如果是使用"AND",第一個條件欄位沒有通過就不會繼續根據第二個條件欄位去做比對查詢。但"OR"不一樣,第一個沒過,還是會根據第二個、第三個條件去搜尋,所以速度不會比較快。


  • 如果函式使用索引欄位做計算,索引就沒有意義。


  • 建立索引也是會占用空間,所以不是很常做為條件使用的欄位的話,就不要設定為索引。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.