當前位置:成語大全網 - 新華字典 - InnoDB主鍵索引與輔助索引的結構

InnoDB主鍵索引與輔助索引的結構

InnoDB引擎索引結構的葉子節點的數據域,存放的就是實際的數據記錄(對於主索引,此處會存放表中所有的數據記錄;對於輔助索引此處會引用主鍵,檢索的時候通過主鍵到主鍵索引中找到對應數據行),或者說,InnoDB的數據文件本身就是主鍵索引文件,這樣的索引被稱為聚簇索引,壹個表只能有壹個聚簇索引。

主鍵索引:

我們知道InnoDB索引是聚集索引,它的索引和數據是存入同壹個.idb文件中的,因此它的索引結構是在同壹個樹節點中同時存放索引和數據。

在Innodb中,索引分葉子節點和非葉子節點,非葉子節點就像新華字典的目錄,單獨存放在索引段中,葉子節點則是順序排列的,在數據段中。Innodb的數據文件可以按照表來切分(只需要開啟innodb_file_per_table),切分後存放在xxx.ibd中,默認不切分,存放在xxx.ibdata中。

輔助(非主鍵)索引:

這次我們以示例中學生表中的name列建立輔助索引,它的索引結構跟主鍵索引的結構有很大差別,在最底層的葉子結點有兩行數據,第壹行的字符串是輔助索引,按照ASCII碼進行排序,第二行的整數是主鍵的值。

這就意味著,對name列進行條件搜索,需要兩個步驟:

① 在輔助索引上檢索name,到達其葉子節點獲取對應的主鍵;

② 使用主鍵在主索引上再進行對應的檢索操作

這也就是所謂的“回表查詢”