劍指Offer(SQL)——密集索引和稀疏索引

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

  1. 密集索引文件中的搜索碼值都對應一個索引值
  2. 稀疏索引文件中只會爲某些索引碼的某些值建立索引項

接下來以MySQL爲例來進行說明:
在MySQL中有兩種搜索引擎:MyISAM和InnoDB

MyISAM引擎:
不管是主鍵索引,唯一鍵索引還是普通索引,其索引都屬於稀疏索引。

InnoDB引擎:

  1. 若一個主鍵被定義,該主鍵則作爲密集索引
  2. 若沒有主鍵被定義,該表的第一個唯一非空索引則作爲密集索引
  3. 若不滿足以上條件,InnoDB內部會生成一個隱藏主鍵(密集索引)
  4. 非主鍵索引存儲相關鍵位和其對應的主鍵值,包含兩次查找
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章