InnoDB索引實現

一個X號的QB發表於2016-08-19

1)InnoDB的資料檔案本身就是索引檔案。從上文知道,MyISAM索引檔案
是分離的,索引檔案僅儲存資料記錄的地址。而在InnoDB中,表資料
檔案本身就是按B+Tree組織的一個索引結構,這棵樹的葉節點data域
儲存了完整的資料記錄,這個索引的key是資料表的主鍵,因此InnoDB
表資料檔案本身就是主索引。
InnoDB的葉節點包含所以的資料記錄,這種索引叫做聚集索引。因為
InnoDB資料檔案本身按主鍵聚集,所以InnoDB要求必須要有主鍵,如
果沒有顯示指定,則MySQL系統會自動選擇一個可以唯一標識記錄的列
作為主鍵,如果不存在這種列,則MySQL自動為InnoDB自動為表生成一
個隱含欄位作為主鍵,這個欄位長度為6個位元組,型別為長整型
2)InnoDB輔助索引data域儲存相應記錄主鍵的值而不是地址,換句話
說,InnoDB所有輔助索引都引用主鍵作為data域。
3)聚集索引的這種方式使得按主鍵的搜尋十分搞笑,但是輔助索引搜尋
需要檢查兩邊索引,首先檢查輔助索引獲得主鍵,然後用主鍵到主索引中獲得
記錄。

相關文章