磁盤是如何存儲(chǔ)數(shù)據(jù)的袖迎?
信息存儲(chǔ)在硬盤里,把它拆開也看不見里面有任何東西腺晾,只有些盤片燕锥。
假設(shè),你用顯微鏡把盤片放大悯蝉,會(huì)看見盤片表面凹凸不平归形,凸起的地方被磁化,凹的地方是沒有被磁化鼻由;凸起的地方代表數(shù)字1暇榴,凹的地方代表數(shù)字0厚棵。 因此硬盤可以以二進(jìn)制來(lái)存儲(chǔ)表示文字、圖片等信息蔼紧。
機(jī)械硬盤和固態(tài)硬盤
機(jī)械硬盤
機(jī)械硬盤的結(jié)構(gòu)你可以想象成一個(gè)唱片機(jī)婆硬,它有一個(gè)旋轉(zhuǎn)的盤片和一個(gè)能沿半徑方向移動(dòng)的磁頭。處理讀取和寫入請(qǐng)求時(shí)奸例,首先可以根據(jù)請(qǐng)求的開始地址算出要處理的數(shù)據(jù)在磁盤上的位置彬犯,之后要進(jìn)行以下幾步工作:
1、磁頭沿半徑方向移動(dòng)查吊,直至移動(dòng)到數(shù)據(jù)所在的柱面(相同半徑的磁道組成的環(huán)面)
2谐区、盤片高速旋轉(zhuǎn),使磁頭到達(dá)數(shù)據(jù)的起始位置
3逻卖、磁頭沿磁道從磁盤讀取或?qū)懭霐?shù)據(jù)當(dāng)一次讀取的數(shù)據(jù)量很少的時(shí)候卢佣,1、2步驟帶來(lái)的開銷是無(wú)法忽略的箭阶,這使得隨機(jī)寫相對(duì)于順序?qū)憰?huì)有巨大的性能劣勢(shì)。因?yàn)樵陧樞驅(qū)懙臅r(shí)候戈鲁,1仇参、2步驟只需要執(zhí)行一次,剩下的全是數(shù)據(jù)傳輸所需要的固有開銷婆殿;而每次隨機(jī)寫的時(shí)候诈乒,前兩個(gè)步驟都需要執(zhí)行,帶來(lái)了極大的額外開銷婆芦。
固態(tài)硬盤
理論上來(lái)說怕磨,它不應(yīng)該存在明顯的隨機(jī)寫與順序?qū)懙乃俣炔町悾驗(yàn)樗褪且粔K支持隨機(jī)尋址的存儲(chǔ)芯片消约,沒有尋道和旋轉(zhuǎn)盤片的開銷肠鲫,但是隨機(jī)寫實(shí)際上還是比順序?qū)懸_@是由于其存儲(chǔ)介質(zhì)閃存的一些特性導(dǎo)致的或粮,簡(jiǎn)單來(lái)說:
1导饲、閃存不支持in-place update:你更新一個(gè)數(shù)據(jù),不可以直接在原有數(shù)據(jù)上改氯材,而要寫到新的空白的地方渣锦,并把原有數(shù)據(jù)標(biāo)記為失效。
2氢哮、標(biāo)記失效的數(shù)據(jù)不是浪費(fèi)空間么袋毙?可以將其清除。但是閃存上清除操作的最小單位是一個(gè)大塊冗尤,大約128K-256K的大小听盖。一次清除會(huì)影響到還未標(biāo)記失效的有用的數(shù)據(jù)胀溺,要先把它們移走。
3媳溺、這種感覺就如同你在網(wǎng)格紙上寫一篇文章月幌,一格一格往下寫,只能寫在空白的格子里悬蔽;但是你若要清除之前寫的內(nèi)容扯躺,只能整行擦除。非常難受而且浪費(fèi)空間對(duì)吧蝎困?所以固態(tài)硬盤里實(shí)現(xiàn)了垃圾回收算法录语,用來(lái)更好地利用存儲(chǔ)空間,同時(shí)減少數(shù)據(jù)遷移禾乘,保護(hù)閃存壽命澎埠。那么隨機(jī)寫顯然比順序?qū)憥?lái)更大的碎片化,從而帶來(lái)更多的垃圾回收開銷始藕、數(shù)據(jù)遷移開銷蒲稳,自然就比順序?qū)懸恕?/p>
結(jié)論
在日常項(xiàng)目開發(fā)中在設(shè)計(jì)存儲(chǔ)時(shí),一定要考慮順序和隨機(jī)伍派,優(yōu)化其性能達(dá)到最高江耀。例如,當(dāng)前大多數(shù)數(shù)據(jù)庫(kù)使用的都是傳統(tǒng)的機(jī)械磁盤诉植,因此祥国,整個(gè)系統(tǒng)設(shè)計(jì)要盡可能順序I/O,避免昂貴的尋道時(shí)間和旋轉(zhuǎn)延遲的開銷晾腔。