iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
自我挑戰組

C# 和 SQL 探索之路 - 2系列 第 15

Day 15: SQL 索引簡介

  • 分享至 

  • xImage
  •  

在 SQL 中,如果有大量資料存放在資料表的話,索引可以改善查詢時的效能,減少查詢時間。如同大部分的書本最前面都有目錄,我們可以透過目錄快速地找到想要的內容。

不過,不適當地使用索引的話,會額外占用磁碟或記憶體的空間,而沒有實際的改善查詢效能;而且在新增、修改、刪除資料時,都會耗費時間更新索引。

資料庫的索引使用的是一種叫 B+ Tree 的樹狀資料結構,搜尋的行為類似於二元樹 (Binary Tree),但是較為矮胖,可以避免造訪的葉節點過長導致 IO 次數過多的問題,也較沒有重新平衡樹狀結構導致的效能問題。

以下是常見的索引類型:

類型 說明
Hash 利用雜湊表 (Hash Table) 存取資料。(速度較快)
Clustered 資料經過排序並使用樹狀結構儲存。可藉由存在節點中的鍵值 (Key) 快速地取得資料。
Nonclustered 資料列的索引有經過排序,但關聯的資料列不保證有經過排序,除非建立 Clustered 索引。
Unique 保證沒有重複的資料,可以是 Clustered 或 Nonclustered 索引的屬性之一。

參考資料


上一篇
Day 14: SQL 的宣告變數與使用
下一篇
Day 16: SQL 索引簡介 2
系列文
C# 和 SQL 探索之路 - 230
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言