本文主要是介绍MongoDB——mongoDB中的封顶集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
场景
一个日志系统,而你保存数据的方式就是存储到mongoDB中。你并不想要很多陈旧的日志,这时候可以考虑mongoDB中的封顶集合。
概念
封顶集合是具有固定大小的集合,当一个新的文档需要写入到超过该集合的大小的集合的时候,集合中最旧的文档就会被删除,并插入新的文档。对于插入/检索/和删除率很高的对象,封顶集合的效果还是很好的。
好处
- 他们保证插入顺序被保留。因而查询不需要利用一个索引来按照文档被存储的顺序返回他们,这消除了索引的开销。
- 他们还保证插入顺序与磁盘上的顺序是相同的,这是通过禁止增加文件大小的更新做到的,这消除了重新定位和管理软件的新位置的开销。
- 他们自动移除集合中最沉旧的文件,因此,你不需要在自己的应用程序中的代码中实现删除
限制
- 一旦被插入到封顶集合中,文档就无法更新到更大的尺寸了。虽然可以更新,但是新数据必须和原数据的大小相同或比原数据的大小更小
- 不能从封顶集合中删除文档,这意味者即使数据不被使用,他也在磁盘上占用空间,虽然你可以显示删除封顶集合来有效的删除所有条目,但你需要重新创建才能再次使用它。
比较
influxDB中可以自动设置过期时间来自动删除陈旧的数据,而不是通过文件大小的方式。相比较来说,我更喜欢时间的形式。所以我们的sentinel的日志记录也是直接用的influxDB,而不是mongoDB。
这篇关于MongoDB——mongoDB中的封顶集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!