1. 程式人生 > 實用技巧 >mysql索引:密集索引和稀疏索引的區別

mysql索引:密集索引和稀疏索引的區別

mysql索引

密集索引

定義:密集索引檔案中的每個搜尋碼值都對應一個索引值。

特點:

  1. B+樹葉子節點儲存的不僅僅是鍵值,還儲存了該行的其他列的資訊
  2. 密集索引決定了表的物理排列順序,所以一個表只能有且僅有一個密集索引

MySQL資料庫中,InnoDB定義密集索引:

在這裡插入圖片描述
注意:一般InnoDB的稀疏索引,儲存的是主鍵資訊
在這裡插入圖片描述
InnoDB檔案儲存方式:索引和資料儲存在一個.ibd檔案中
在這裡插入圖片描述

稀疏索引

定義:稀疏索引檔案只為索引碼的某些值建立索引項

特點:B+樹葉子節點儲存的是鍵位資訊和該行資料的地址,或儲存的是鍵位資訊和主鍵

MySQL資料庫中:
不論是什麼索引,MyISAM中,都是稀疏索引

注意:一般MyISAM的稀疏索引,儲存的是行的地址值

在這裡插入圖片描述
MyISAM引擎的檔案儲存方式:索引和資料分別存放,索引存放在.MYI檔案下,資料存放在.MYD檔案項

在這裡插入圖片描述