上一篇看了存儲用戶數據的索引頁結構,這裏再看下b樹索引是怎麼存的。
本質上b樹索引也是存在索引頁這一種類型的頁上的,和一樣。不同的點在於user records區域存的內容不用而已。索引只需要存儲索引值+頁號即可,如果不是主鍵索引,還需要存主鍵值。另外這些記錄的行格式的type是1,表明是索引類型的記錄。其餘基本類似,page directory區域也存儲了每一組的最大索引值。
所以查找過程就是:先從索引節點開始搜索,根據page directory區域使用二分法定位到索引行在內頁的位置,根據索引行定位到下一級索引頁的位置,再遞歸查找下一個索引頁,直到定位到數據頁。
(本篇圖片全部來自掘金小冊中《MySQL是怎樣運行的》一書)