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