mongodb持久化原理

mongodb與mysql不同,mysql的每一次更新操作都會(huì)直接寫入硬盤,但是mongo不會(huì),做為內(nèi)存型數(shù)據(jù)庫,數(shù)據(jù)操作會(huì)先寫入內(nèi)存,然后再會(huì)持久化到硬盤中去,那么mongo是如何持久化的呢


mongodb在啟動(dòng)時(shí),專門初始化一個(gè)線程不斷循環(huán)(除非應(yīng)用crash掉),用于在一定時(shí)間周期內(nèi)來從defer隊(duì)列中獲取要持久化的數(shù)據(jù)并寫入到磁盤的journal(日志)和mongofile(數(shù)據(jù))處,當(dāng)然因?yàn)樗皇窃谟脩籼砑佑涗洉r(shí)就寫到磁盤上,所以按mongodb開發(fā)者說,它不會(huì)造成性能上的損耗,因?yàn)榭催^代碼發(fā)現(xiàn),當(dāng)進(jìn)行CUD操作時(shí),記錄(Record類型)都被放入到defer隊(duì)列中以供延時(shí)批量(groupcommit)提交寫入,但相信其中時(shí)間周期參數(shù)是個(gè)要認(rèn)真考量的參數(shù),系統(tǒng)為90毫秒,如果該值更低的話,可能會(huì)造成頻繁磁盤操作,過高又會(huì)造成系統(tǒng)宕機(jī)時(shí)數(shù)據(jù)丟失過。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容