EN - FR - DE - ES - IT - PT -

LexiconDream

📇 索引

一種可以加快資料庫記錄檢索速度的資料結構。

索引

索引可以加快資料檢索速度。如果沒有索引,資料庫需要掃描每一行來尋找符合的記錄。有了索引,它可以直接跳到相關的行。索引是一種獨立的資料結構,它將值對應到位置。書籍索引的工作原理也是如此。你找一個詞條,然後找出它的頁碼。你不需要翻閱每一頁來尋找。資料庫也是如此。

索引是有代價的。它們會佔用空間。由於索引也需要更新,因此會降低插入、更新和刪除操作的速度。每次寫入操作的成本都會增加。其好處是讀取速度更快。對於讀取密集型工作負載,索引至關重要。對於寫入密集型工作負載,過多的索引會損害效能。選擇要建立索引的欄位需要了解查詢模式。 WHERE 子句、JOIN 條件和 ORDER BY 子句中使用的欄位是理想的選擇。低基數的欄位(例如布林標誌)則不是好的選擇,因為索引無法有效縮小搜尋範圍。複合索引涵蓋多個列,可以處理基於多個欄位進行篩選的查詢。複合索引中列的順序很重要。資料庫可以使用複合索引來處理僅基於前導列的查詢,但不能只處理基於後導列的查詢。索引設計是一種權衡。目標是在不增加不必要的寫入速度的前提下,加快關鍵查詢的速度。

索引類型

索引是一種捷徑。它犧牲寫入速度和儲存空間來換取讀取速度。在對讀取速度要求極高的場景下,應該使用索引。

Comments (3)

  1. Derek S.
    Database indexes are a tradeoff. They speed up reads but slow down writes and take up space. Knowing when to add one is an art.
  2. Pam L.
    A primary key automatically creates an index. That's something a lot of beginners don't realize.
  3. Chris T.
    Without an index the database has to scan every row. With one it can jump straight to the data. Huge performance difference.

Leave a comment