淺談基礎算法之ISAM(四)


 
 
很多博友要求我修改標題,我也感覺這幾篇文章確實跟大型網站和架構關系不大,所以決定修改標題。
上文聊到伸展樹,這篇講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 手冊

 
 
  
 
推薦
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM