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

閱讀時間約 1 分鐘
索引(index)能提升搜尋比對資料時的效能


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


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


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

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


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


  • 建立索引也是會占用空間,所以不是很常做為條件使用的欄位的話,就不要設定為索引。
我的Java學習日記
留言0
查看全部
發表第一個留言支持創作者!
為何要重寫equals方法? 為何要重寫hashCode方法?
兩種方式進行物件比較,使用Comparator或使用Comparable
併發,多個事情在同一時間段內同時發生 並行,多個事情在同一個時間點上同時發生
Map是由Key-Value所組成的 而Key的部分不能重複,因為是Set
Set 是繼承 Collection API的一個子接口 interface 唯一的限制是不允許重覆的物件存在 所以當不想有相同的物件出現,就可以選擇用Set
程式建立thread,然後會交給硬體中的scheduler去排定執行、切換資源 我們無法強制指定順序,因為電腦有太多任務需要執行,但資源有限,因此會由scheduler去分配、切換資源 電腦能同時執行多項任務
為何要重寫equals方法? 為何要重寫hashCode方法?
兩種方式進行物件比較,使用Comparator或使用Comparable
併發,多個事情在同一時間段內同時發生 並行,多個事情在同一個時間點上同時發生
Map是由Key-Value所組成的 而Key的部分不能重複,因為是Set
Set 是繼承 Collection API的一個子接口 interface 唯一的限制是不允許重覆的物件存在 所以當不想有相同的物件出現,就可以選擇用Set
程式建立thread,然後會交給硬體中的scheduler去排定執行、切換資源 我們無法強制指定順序,因為電腦有太多任務需要執行,但資源有限,因此會由scheduler去分配、切換資源 電腦能同時執行多項任務
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
本文彙整了一些關於 SQL 效能優化的技巧,提供讀者更快的資料處理方案。包括如何清空資料表、獲取最新資料、總和資料時的可能問題以及評估 SQL 語句效能的方法。通過合理的指令使用,能夠大幅提升查詢效率並降低錯誤發生的機率。適合資料庫管理者和程式開發者作為參考。
Thumbnail
靈感與資料總是散落各地?Heptabase 幫你有效建立個人知識庫。 … 這篇文章我會針對 「為什麼 Heptabase 可以幫助我靈感與資訊收納,並做好輸入+輸出?」 你可以先看完這篇文章,再思考自己是不是有興趣想試試 Heptabase。
Thumbnail
寫在「臺灣哲學史料資源調查研究」諮詢會議之後,我對資料庫回應與想像
Thumbnail
範例句: 假設我們有一段文章以空白隔開的方式來切割詞彙,內容如下: 假設條件為: clauses:[提升,滿意度,問卷] 。 slop:4。 in_order: true ❗ 這裡的Slop代表範圍內不匹配的最大數量,從開始匹配的字詞框到最後加總一併進行計算。 查詢結構會是如此 請問上述條件是否能正
Thumbnail
不論我們使用Nodejs的Mongo Client還是Go語言甚至其他語言的套件, 應該都會看到連線選項中有poolSize這類的配置, 以下會介紹什麼是連線池、優點、應注意的事項。 首先來談談連接池之前的單一連接機制, 在配置正確的狀況下可能不會遇到任何問題, 但假設我們的應用同時間有100個用戶
Thumbnail
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
Thumbnail
Firebase Realtime Database 是一個 NoSQL 即時雲端資料庫,支援多平台(JavaScript SDKs、Android、iOS),可以讓使用者即時取得資料庫的資料。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
本文彙整了一些關於 SQL 效能優化的技巧,提供讀者更快的資料處理方案。包括如何清空資料表、獲取最新資料、總和資料時的可能問題以及評估 SQL 語句效能的方法。通過合理的指令使用,能夠大幅提升查詢效率並降低錯誤發生的機率。適合資料庫管理者和程式開發者作為參考。
Thumbnail
靈感與資料總是散落各地?Heptabase 幫你有效建立個人知識庫。 … 這篇文章我會針對 「為什麼 Heptabase 可以幫助我靈感與資訊收納,並做好輸入+輸出?」 你可以先看完這篇文章,再思考自己是不是有興趣想試試 Heptabase。
Thumbnail
寫在「臺灣哲學史料資源調查研究」諮詢會議之後,我對資料庫回應與想像
Thumbnail
範例句: 假設我們有一段文章以空白隔開的方式來切割詞彙,內容如下: 假設條件為: clauses:[提升,滿意度,問卷] 。 slop:4。 in_order: true ❗ 這裡的Slop代表範圍內不匹配的最大數量,從開始匹配的字詞框到最後加總一併進行計算。 查詢結構會是如此 請問上述條件是否能正
Thumbnail
不論我們使用Nodejs的Mongo Client還是Go語言甚至其他語言的套件, 應該都會看到連線選項中有poolSize這類的配置, 以下會介紹什麼是連線池、優點、應注意的事項。 首先來談談連接池之前的單一連接機制, 在配置正確的狀況下可能不會遇到任何問題, 但假設我們的應用同時間有100個用戶
Thumbnail
本篇主要是介紹MongoDB有哪些進階的索引, 了解原理及功能後, 在應用上才能規劃出更有效率的索引, 而主要會談到以下五個索引類型: 複合索引。 部份索引。 多鍵索引。 全文索引。 TTL索引。 進入到索引類型之前先提醒一下,一個集合的索引數不能超過64個。 限制: 最多只能31個欄位做一組複合索
Thumbnail
Firebase Realtime Database 是一個 NoSQL 即時雲端資料庫,支援多平台(JavaScript SDKs、Android、iOS),可以讓使用者即時取得資料庫的資料。