Capped Collection是性能出色的有著固定大小的集合,以LRU(least Recently Used,最近最少使用)規(guī)則和插入順序執(zhí)行age-out(老化移出)處理,自動維護(hù)集合中對象的插入順序。
創(chuàng)建時候要預(yù)先指定大小,如果空間用完,新添加的對象將會取代集合中最近的對象。更新如果超出了collectiond 大小,則會更新失敗。雖然不允許刪除,但是可以調(diào)用drop方法刪除集合中所有的文檔。 刪除后要顯示重建集合。在32機(jī)器上,一個capped collection的最大值約是482.5M,64位只受系統(tǒng)文件大小的限制。
一個普通的collection轉(zhuǎn)換為Capped Collection,只要調(diào)用convertToCapped()命令即可;
Capped Collection是mongodb中日志機(jī)制的首選,mongodb沒有使用日志文件,而是吧日志文件存儲在數(shù)據(jù)庫中。在一個沒有索引的capped collection中插入對象的速度與在文件系統(tǒng)中記錄的日志速度相當(dāng)。
在內(nèi)存中緩存一些對象,比如,計(jì)算出來的統(tǒng)計(jì)信息一般需要在collection上建立一個索引,因?yàn)槭褂镁彺嫱亲x比寫多。
可以利用capped collection的age-out特性,省去寫crontab腳本執(zhí)行人工歸檔的工作。
1.如果寫比讀多,最好不要在上面創(chuàng)建索引;
2,使用natual ordering可以有效地檢索最近插入的元素,因?yàn)閏apped collection能夠保證自然排序就是插入的順序。
3. capped collection不能被shard.
4. 可以在創(chuàng)建capped collection時指定collection中能夠存放的最大文檔數(shù)。
新聞熱點(diǎn)
疑難解答