Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

固定大小集合

在此页面上

  • 限制
  • 命令语法
  • 用例
  • 开始体验
  • 详情
  • Oplog 集合
  • _id 索引
  • 更新
  • 查询效率
  • 可追加游标
  • 多个并发写入
  • 了解详情

固定大小集合是固定大小的collection,可根据插入顺序插入和检索文档。固定大小集合的工作方式与循环缓冲区类似:一旦collection填满其分配的空间,它就会通过覆盖collection中最旧的文档来为新文档腾出空间。

以下示例创建了一个名为log的固定大小集合,其最大大小为100 ( 000字节)。

db.createCollection( "log", { capped: true, size: 100000 } )

有关创建固定大小集合的详细信息,请参阅createCollection()create

通常, TTL 索引比固定大小集合提供更好的性能和更大的灵活性。 TTL 索引会过期,并根据日期类型字段的值和索引的 TTL 值从 collection 中删除数据。

固定大小集合对插入进行序列化,因此其并发插入性能比非固定大小集合差。在创建固定大小集合之前,请考虑是否可以改用 TTL 索引。

固定大小集合最常见的用例是存储日志信息。当固定大小集合达到其最大大小时,旧日志条目将自动被新条目覆盖。

要创建和查询固定大小集合,请参阅以下页面:

请考虑固定大小集合的这些行为细节。

副本集中存储操作日志的 oplog.rs 集合使用固定大小集合。

与其他固定大小集合不同,oplog 可能会增长到超过配置的大小限制,从而避免删除 majority commit point

注意

MongoDB 会将 oplog 的固定大小四舍五入为最接近的 256 字节的整数倍。

默认情况下,固定大小集合包含 _id 字段以及针对 _id 字段的索引。

避免更新固定大小集合中的数据。由于固定大小集合的大小是固定的,因此更新可能会导致数据扩展到集合的分配空间之外,从而导致意外行为。

使用自然排序高效地从collection中检索最近插入的元素。这类似于对日志文件使用tail命令。

可以将可追加游标与固定大小集合一起使用。与 UNIX tail -f 命令类似,可追加游标“跟踪”固定大小集合的末尾。当新文档插入到固定大小集合中时,可以使用可追加游标继续检索文档。

有关创建可追加游标的信息,请参阅可追加游标。

如果固定大小集合中有并发写入者,MongoDB 不保证文档按插入顺序返回。

← 按需物化视图