序
很多博友要求我修改標題,我也感覺這幾篇文章確實跟大型網站和架構關系不大,所以決定修改標題。
上文聊到伸展樹,這篇講ISAM樹。
ISAM樹是1964年IBM提出的。索引順序存取方法(ISAM, Indexed Sequential Access Method)最初是IBM公司發展起來的一個文件系統,可以連續地(按照他們進入的順序)或者任意地(根據索引)記錄任何訪問。
如果對ISAM代碼感興趣,可以參考mysql-3.23.35源碼,里面的代碼很有參考價值。——代碼部分我就不講解了,以后如果有時間就專門針對isam做個系列文章。
ISAM結構

? 相當于多叉平衡樹
? 樹矮(能減少硬盤I/O次數)
? 節點記錄多(一次性讀取更多數據)
ISAM搜索

ISAM搜索效率

ISAM索引插入數據

ISAM應用
Foxpro/dBase
MS Access
MySQL 3.23前的唯一引擎(ISAM Engine)——后來被MyISAM取代(并不是ISAM樹)
Berkeley DB
優點:簡單、易實現
問題:溢出頁不平衡,所以需要rebuild index?

總結
這次我沒有講解具體的代碼層部分,我發現ISAM部分的材料非常少。所以我就下載開源代碼看看,大家如果想更深入的了解,我建議大家可以把mysql-3.23.35源碼下載下來好好研究,早期版本代碼量還是比較少的。
再奉上一個參考資料C - ISAM 手冊

推薦

喜歡編程
浙公網安備 33010602011771號