iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0

資料庫中的索引(Index)是一種數據結構,用於加速數據檢索操作。
索引可以想像成是一本書的目錄,它提供了關於數據表中記錄位置的信息,從而使查詢更加高效。
索引通常是基於一個或多個數據表的列來建立的,並且它們保持數據的排序和組織,以便快速查找所需的數據。

索引的特點、功用

  • 加速查詢: 最主要的作用是加速查詢操作。當執行查詢時,資料庫可以使用索引來快速定位和檢索所需的數據,而不必掃描整個數據表。

  • 唯一性: 索引可以用來強制唯一性約束,確保特定列(或多個列的組合)的值是唯一的,避免重複的數據。

  • 排序: 索引可以保持數據的排序,這對於根據特定列進行排序查詢非常有用。

  • 加速連接: 當您執行連接操作(JOIN)時,索引可以用來更快地查找關聯列的值,從而提高查詢性能。

  • 範圍查詢: 索引也可以支持範圍查詢,例如查找在某個日期範圍內的所有記錄。

  • 選擇性: 索引的建立是可選的,您可以根據應用的需求選擇性地為特定列建立索引。

  • 代價: 索引不是免費的!! 它們需要額外的存儲空間,並在插入、更新和刪除數據時增加了操作的複雜性。因此,過多的索引可能會對寫入性能產生不利影響。

範例

假設我們有一個名為 users 的資料表,並且我們想要在 email 欄位上添加一個索引,這樣可以更快地查詢使用者的電子郵件。

-- 使用 ALTER TABLE 添加索引
ALTER TABLE users ADD INDEX idx_email (email);

-- 或者使用 CREATE INDEX
CREATE INDEX idx_email ON users (email);

-- 查詢具有特定電子郵件地址的使用者
SELECT * FROM users WHERE email = 'user@example.com';

常見的索引類型包括B-Tree索引、哈希索引、全文索引等,不同的資料庫系統支持不同類型的索引。
選擇適當的索引類型和列來建立索引是資料庫性能優化的關鍵部分,它可以顯著改善查詢效率和數據庫的整體性能。


上一篇
什麼是資料庫正規化? Day16
下一篇
常見的索引類型與使用方式 Day18
系列文
從餐飲業轉職成小白工程師的所見所學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言