重建索引的作用 格式化硬盤(pán)可以清理磁盤(pán)碎片嗎?
格式化硬盤(pán)可以清理磁盤(pán)碎片嗎?嚴(yán)格地說(shuō),磁盤(pán)碎片應(yīng)該稱為文件碎片。因?yàn)榇疟P(pán)碎片是因?yàn)橐粋€(gè)文件被分割成多個(gè)文件并存儲(chǔ)在磁盤(pán)上,所以磁盤(pán)碎片不是指磁盤(pán)被分割成碎片,而是指文件被分割。造成磁盤(pán)碎片的原因很多
格式化硬盤(pán)可以清理磁盤(pán)碎片嗎?
嚴(yán)格地說(shuō),磁盤(pán)碎片應(yīng)該稱為文件碎片。因?yàn)榇疟P(pán)碎片是因?yàn)橐粋€(gè)文件被分割成多個(gè)文件并存儲(chǔ)在磁盤(pán)上,所以磁盤(pán)碎片不是指磁盤(pán)被分割成碎片,而是指文件被分割。
造成磁盤(pán)碎片的原因很多,最根本的原因是頻繁刪除數(shù)據(jù)。在計(jì)算機(jī)的使用中,經(jīng)常出現(xiàn)數(shù)據(jù)刪除和修改的原因有:1。虛擬內(nèi)存,2。瀏覽器緩存,3。大文件下載。
虛擬內(nèi)存是由于操作系統(tǒng)在執(zhí)行程序時(shí),內(nèi)存不足而使用磁盤(pán)空間進(jìn)行臨時(shí)文件交換,而虛擬內(nèi)存會(huì)和內(nèi)存一樣,使用后會(huì)被釋放,所以會(huì)有頻繁的數(shù)據(jù)文件被寫(xiě)入和刪除,這樣會(huì)有大量的文件被寫(xiě)入刪除,磁盤(pán)空間,再寫(xiě)如果文件的大小稍小,前后會(huì)有不連續(xù)的小空間,這很容易導(dǎo)致以后的大文件被分割成多個(gè)文件存儲(chǔ)。
瀏覽器也是如此。當(dāng)瀏覽器打開(kāi)網(wǎng)站時(shí),它實(shí)際上會(huì)將網(wǎng)站的文件緩存到磁盤(pán)中,然后在瀏覽器中顯示這些文件。瀏覽器將自動(dòng)或手動(dòng)清除這些緩存文件,這將導(dǎo)致重復(fù)寫(xiě)入和刪除文件。
因?yàn)槲覀冊(cè)谙螺d的時(shí)候,通常會(huì)做一些其他的操作,這些操作都會(huì)寫(xiě)入磁盤(pán),這樣下載的文件就會(huì)被強(qiáng)制分成多個(gè)文件存儲(chǔ)。
那么什么是格式化?即刪除磁盤(pán)分區(qū)上的所有文件,重建系統(tǒng)和磁盤(pán)分區(qū)的索引。當(dāng)磁盤(pán)分區(qū)上沒(méi)有文件時(shí),怎么會(huì)有碎片呢?所以格式化可以消除磁盤(pán)碎片。
mongodb建立索引為什么不會(huì)產(chǎn)生索引碎片?
如果mongodb直接在前臺(tái)運(yùn)行index命令,會(huì)阻塞整個(gè)數(shù)據(jù)庫(kù)。因此,建議采用背景法建立指標(biāo)。但是,這也會(huì)帶來(lái)一些問(wèn)題。在2.6版本之前,即使二級(jí)服務(wù)器使用后臺(tái)模式建立索引,二級(jí)服務(wù)器仍然會(huì)以前臺(tái)模式建立索引,這也會(huì)導(dǎo)致數(shù)據(jù)庫(kù)阻塞問(wèn)題。版本2.6修復(fù)了這個(gè)錯(cuò)誤。在版本2.6之后,當(dāng)使用后臺(tái)模式構(gòu)建索引時(shí),它實(shí)際上會(huì)轉(zhuǎn)向在后臺(tái)運(yùn)行。為了盡量減少索引構(gòu)建對(duì)mongodb服務(wù)器的影響,一種方法是將mongodb服務(wù)器轉(zhuǎn)換為單機(jī)模式并進(jìn)行構(gòu)建。具體步驟如下:
1。首先停止輔助服務(wù)器,取消--replset參數(shù)并更改mongodb端口后重新啟動(dòng)mongodb。此時(shí),mongodb將進(jìn)入標(biāo)準(zhǔn)模式;
2。運(yùn)行命令ensureindex以標(biāo)準(zhǔn)模式構(gòu)建索引,建議使用前臺(tái)模式;
3。建立索引后關(guān)閉輔助服務(wù)器,按正常方式啟動(dòng)服務(wù)器
4。按照上述步驟1-3依次建立二級(jí)索引。最后,臨時(shí)將主服務(wù)器轉(zhuǎn)換為輔助服務(wù)器。同樣,根據(jù)方法1-3構(gòu)建索引,然后將其轉(zhuǎn)換到主服務(wù)器。這種方法雖然麻煩,但可以最大限度地減少索引操作對(duì)mongodb的影響,在某些情況下值得做。
為什么sql server數(shù)據(jù)庫(kù)索引碎片整理?
本文需要您對(duì)SQL中數(shù)據(jù)的索引和存儲(chǔ)方法有一定的了解
在SQL server中,存儲(chǔ)數(shù)據(jù)的最小單位是頁(yè),每個(gè)頁(yè)可以容納8060字節(jié)的數(shù)據(jù)。頁(yè)面的組織是通過(guò)B-樹(shù)結(jié)構(gòu)(如果表上沒(méi)有聚集索引,則為堆結(jié)構(gòu),本文不討論),如下圖所示:
在聚集索引B-樹(shù)中,只有葉節(jié)點(diǎn)實(shí)際存儲(chǔ)數(shù)據(jù),而其他根節(jié)點(diǎn)和中間節(jié)點(diǎn)各自僅用于存儲(chǔ)葉節(jié)點(diǎn)葉節(jié)點(diǎn)是一個(gè)頁(yè),每個(gè)頁(yè)都是不可分割的,服務(wù)器在每個(gè)頁(yè)中存儲(chǔ)數(shù)據(jù)的最小單位是表的行。當(dāng)葉節(jié)點(diǎn)中新插入的行或更新的行不能容納當(dāng)前更新的行或插入的行時(shí),將進(jìn)行分頁(yè)。在分頁(yè)過(guò)程中,將生成片段。
了解外部片段
首先,了解外部片段的“外部”是相對(duì)于頁(yè)面的。外部碎片是指分頁(yè)引起的碎片。例如,我想在現(xiàn)有聚集索引中插入一行,這會(huì)導(dǎo)致現(xiàn)有頁(yè)面空間不足以容納新行。這會(huì)導(dǎo)致分頁(yè):
因?yàn)樵赟QL server中,新頁(yè)是隨著數(shù)據(jù)的增長(zhǎng)而生成的,聚集索引要求行之間的連續(xù)性,所以在許多情況下,分頁(yè)和原始頁(yè)在磁盤(pán)上是不連續(xù)的