一、NTFS文件系統(tǒng)的B+樹結(jié)構(gòu)與一般的B+樹結(jié)構(gòu)的區(qū)別
NTFS文件系統(tǒng)的B+樹結(jié)構(gòu)與一般的B+樹結(jié)構(gòu)的區(qū)別是NTFS文件系統(tǒng)的B+樹結(jié)構(gòu)是配合磁盤特性的,本來(lái)查詢樹使用多分支在內(nèi)存里是沒(méi)有意義的,只會(huì)導(dǎo)致讀取了更多數(shù)據(jù)。但磁盤(或者說(shuō)機(jī)械硬盤)的特性在于,多次隨機(jī)讀取效率遠(yuǎn)低于連續(xù)讀取一大段數(shù)據(jù),因?yàn)槊恳淮味夹枰?jīng)過(guò)尋道。這樣B樹就被設(shè)計(jì)為用較少的次數(shù)讀取磁盤,每次讀取較大的塊,從而優(yōu)化整體查詢。
B+樹在NTFS文件系統(tǒng)中的應(yīng)用
卷(volume)
NTFS的結(jié)構(gòu)首先從卷開始。
卷相應(yīng)于磁盤上的一個(gè)邏輯分區(qū),當(dāng)你將一個(gè)磁盤或者磁盤的一部分格式化成NTFS,卷將被創(chuàng)建起來(lái)。
一個(gè)磁盤能夠有一個(gè)卷或好幾個(gè)卷.NTFS獨(dú)立的處理每個(gè)卷。
卷相應(yīng)的就是C盤,D盤,E盤等。
簇(cluster)
在一個(gè)NTFS卷中,簇的大小,或者說(shuō)簇因子(cluster factor),是在磁盤管理程序MMC載入件格式化該卷的時(shí)候建立起來(lái)的。默認(rèn)的簇因子隨著卷大小的不同而不同,但它是物理扇區(qū)的整數(shù)倍。并且總是2的冪。(1個(gè)扇區(qū),2個(gè)扇區(qū),4個(gè)扇區(qū),8個(gè)扇區(qū))以此類推。
簇因子被表示成一個(gè)簇中的字節(jié)數(shù),比方512字節(jié) 1KB或者2KB。
硬盤的讀寫以扇區(qū)為基本單位。NTFS的讀寫以簇為基本單位。
NTFS在內(nèi)部?jī)H僅引用到簇一級(jí),NTFS使用簇作為它的分配單位,從而保持它與物理扇區(qū)大小之間的獨(dú)立性。
邏輯簇號(hào)(Logical Cluster Number。LCN)
LCN是從一個(gè)卷的開始直到結(jié)束的全部簇的一個(gè)編號(hào)。
NTFS依賴于邏輯號(hào)(LCN)來(lái)引用物理位置。
獲取物理磁盤地址方法
LCN乘以簇因子。從而得到卷上的物理字節(jié)偏移量。
虛擬簇號(hào)(Virtual Cluster Number。VCN)
VCN對(duì)同屬一個(gè)文件的全部簇進(jìn)行編號(hào),從0到m。NTFS依賴于虛擬簇號(hào)(VCN)來(lái)引用一個(gè)文件內(nèi)部的數(shù)據(jù)。
VCN不必是物理上連續(xù)的。它們能夠被映射到該卷上的不論什么LCN編號(hào)。
主文件表(Master File Table)
MFT是NTFS卷結(jié)構(gòu)的核心所在。
涉及到B+樹。
延伸閱讀:
二、什么是B樹
B樹是一種數(shù)據(jù)結(jié)構(gòu),用于在硬盤或其他非易失性存儲(chǔ)介質(zhì)上快速存儲(chǔ)和訪問(wèn)大量數(shù)據(jù)。它是一種平衡樹,其每個(gè)節(jié)點(diǎn)可以存儲(chǔ)多個(gè)鍵值對(duì),而不僅僅是一個(gè)。B樹通常用于需要頻繁讀寫的數(shù)據(jù)庫(kù)或文件系統(tǒng)中,因?yàn)樗梢詼p少磁盤的訪問(wèn)次數(shù),從而提高了性能。
B樹有以下幾個(gè)特點(diǎn):
每個(gè)節(jié)點(diǎn)可以存儲(chǔ)多個(gè)鍵值對(duì)。這個(gè)數(shù)量通常稱為節(jié)點(diǎn)的度數(shù)(degree)。
所有葉節(jié)點(diǎn)都在同一層級(jí)上。這有助于保持樹的平衡,使得在任何一個(gè)節(jié)點(diǎn)到達(dá)葉子節(jié)點(diǎn)的路徑長(zhǎng)度都相同。
節(jié)點(diǎn)中的鍵值對(duì)是按照某種順序排列的。這使得查找操作更加高效。
B樹的高度相對(duì)于存儲(chǔ)的關(guān)鍵字?jǐn)?shù)來(lái)說(shuō)非常小。因此,可以較快地定位到任何一個(gè)關(guān)鍵字。