新聞中心
今天到了公司打開郵箱,驚喜地發(fā)現(xiàn)有MongoDB的新聞信,打開一看竟然是2.0更新了,哈哈,于是迫不急待地開始嘗試,因為我平時主要只維護數(shù)據(jù)庫,并不涉及開發(fā)部分,所有理解有限,大部分還是以翻譯為主。以下為官方文檔地址:http://www.mongodb.org/display/DOCS/2.0+Release+Notes?mkt_tok=3RkMMJWWfF9wsRonv6TPZKXonjHpfsX%2B6eopWKag38431UFwdcjKPmjr1YICRMt0dvycMRAVFZl5nV0IHeWb#2.0ReleaseNotes-Journalingenhancements

創(chuàng)新互聯(lián)建站服務(wù)項目包括洛龍網(wǎng)站建設(shè)、洛龍網(wǎng)站制作、洛龍網(wǎng)頁制作以及洛龍網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,洛龍網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到洛龍省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
Compact Command整理命令
事實上我也不知道到底應(yīng)該將這個命令翻譯成什么比較合適,它的作用是整理collection,將其中的內(nèi)容全部抽出后重新排列整齊,有點類似系統(tǒng)的磁盤整理,所以我就這么叫它了。在2.0版本之前,需要進行類似的操作,要使用整理命令是以collection為單位進行操作的。使用這個命令的方法有兩種:
- db.runCommand({compact:'myCollcetionName'})
- db.mycollction.runCommand("compact")
這個命令要等完成后才會返回狀態(tài),可以通過mongod的log文件來查看過程紀(jì)錄,或是在另一個mongo實例中通過命令db.currentOp() 遠程查看正在進行整理的collection的在內(nèi)存中的狀態(tài)。需要特別注意的是,在運行這個命令時是無法進行其它操作的,所以推薦在Replica Sets中使用。同時,在Replica Sets中使用時,也有一些要注意的是:
- 對于Replica Sets中的Primary instance,直接運行這個命令會報錯,需要使用force:true作參數(shù)來強制運行,所以并不建議在Primary上運行。
- 對于Replica Sets中的Secondary instance,開始運行這個命令時,該instance會自動降為"recovery"狀態(tài),直到命令完成。
- 在整個Replica Set中,需要在每上instance上分別進行Compact操作,這種整理的行為并不會自動同步。
官方文檔上提供的說明是進行 Compact操作帶來的明顯效果是能去掉了數(shù)據(jù)庫中所有的Padding Factor,Padding Factor是Mongo為了提高數(shù)據(jù)操作的效率而預(yù)留的一部分磁盤空間,所以說其實Compact功能并不完全適合需要經(jīng)常進行數(shù)據(jù)更新的 Collection,但是對于比較穩(wěn)定不常進行update操作的數(shù)據(jù)庫來說,還是可以提高查詢速度的。
另外在殺掉Compact進程時要特別注意的,Compact操作是將所有的內(nèi)容從一個Collection中取出,最后再將它們在collection中重建,所以中斷這個Compact 會帶來數(shù)據(jù)丟失。此時就需要Journal來減少這種損失了。Journal在1.9+時就作為一個重點的測試功能出現(xiàn)了,因為考慮到它還不穩(wěn)定,我沒敢在實際項目中試用它,只作了一些小測試,2.0中它已經(jīng)是正式出道了,我會好好地疼愛它的= v =,以上內(nèi)容基本上取自官方文檔,我會在隨后附上實際實驗。
本文名稱:MongoDB2.0新功能逐個看之CompactCommand
本文URL:http://fisionsoft.com.cn/article/cohdiss.html


咨詢
建站咨詢
