1 堆檔案
類似資料庫的堆表,記憶體管理中的堆,記錄是無序儲存的,要訪問乙個記錄需要知道其位址(位移),mds的masterbin就是這種檔案,自己維護metadata(pointer table)
2雜湊檔案
記錄按照key雜湊到塊, hash(key) % n,n是總塊數。然後存入相應塊裡,如果塊滿了,就插入到溢位桶(拉鍊法)
缺點,只能根據key來取一條記錄(bookmark查詢)不能range 查詢
3 有序檔案
1)連續儲存的有序檔案
2)帶索引的檔案 (基本檔案 + 索引)
稠密索引:每條記錄都有乙個索引項
稀疏索引:對記錄的key空間分塊,乙個塊乙個索引項,塊內線性或二分查詢
多級稀疏索引:即便只是每個塊乙個索引項,索引項可能依舊很多,會佔很多磁碟塊,比如佔100塊,如何定位到索引項在哪個塊? 可以在磁碟空間上做二分查詢,比如先讀取第50塊,在塊中則命中,大於塊中的所有關鍵字,則確定下次範圍是[51, 100],依次類推。需要log 100 = 7次磁碟訪問。
還可以對這100塊索引再做索引,那麼就只有100個索引項,可以放到乙個塊裡,這樣只需要度先讀這一塊(或者假設已經在記憶體裡),然後直接找到對應的索引塊,直接讀這個索引塊,然後再查詢
3)b+樹的葉子節點就是記錄的稠密索引,非葉子節點就是葉子節點的多級稀疏索引;b樹是直接把資料本身按key有序的儲存,基本檔案本身有序,沒有額外索引,也是有序檔案的一種:非連續儲存的有序檔案。
4 有洞的檔案
檔案是可以有洞的,比當前檔案大小是1000, seek到2000寫檔案,就產生了乙個洞,洞是metadata維護的,不占用磁碟空間
Linux 檔案系統備用知識點
最近因為一些需求,需要複習一下linux的檔案系統,簡單對磁碟 檔案系統做乙個歸納,溫故而知新。硬碟是怎麼變成檔案系統的 硬碟這東西不知道大家拆過沒,裡面是一片片帶有磁性的碟片,每個碟片有兩個面,都可記錄資料。而linux 在使用磁碟的時候,會首先對磁碟進行初始化,即類似mkfs.ext3 dev ...
作業系統知識點總結(十七)檔案系統知識點總結
引導控制塊 boot control block 包括系統從該分割槽引導作業系統所需要的資訊。如果 磁碟沒有作業系統,那麼這塊的內容為空。它通常為分割槽的第一塊。ufs稱之為引導塊 boot block ntfs 稱之為分割槽引導扇區 partition boot sector 分割槽控制塊 par...
linux檔案系統知識點整理
1 掛載 在乙個區被格式化為乙個檔案系統之後,它就可以被linux作業系統使用了,只是這個時候linux作業系統還找不到它,所以我們還需要把這個檔案系統 註冊 進linux作業系統的檔案體系裡,這個操作就叫 掛載 mount 掛載是利用乙個目錄當成進入點 類似選乙個現成的目錄作為 將檔案系統放置在該...