MongoDB 5.0 新特性速览

前言7 月 13 号, MongoDB 发布了大版本 5.0, 官方 Release Note 在这里:

docs.mongodb.com/manual

本文由社区成员肖贝贝在14号发布于知乎上,他选择了一些亮眼的特性介绍给大家。文末我们还给大家介绍了两个MongoDB岗位,以及MongoDB 5.0 新特性在线研讨会入口,欢迎关注!

时序集合: 版本核心功能

在创建集合时, 可以指定此集合为时序集合, 一个创建命令如下:


db.createCollection( 
    "weather24h", 
    { 
       timeseries: { 
          timeField: "timestamp", 
          metaField: "metadata", 
          granularity: "hours" 
       }, 
       expireAfterSeconds: 86400 
    } 
) 
 
timeField 是时间戳, metaField 是标签, granularity 是聚合粒度,
expireAfterSeconds 是过期时间

timeField 是时间参数, 必须为 BSON data。

和其他时序数据库类似, metaField 影响维度基数, 好的 metaField 应该选择低基数的, 有选择性的指标, 高基础必然带来性能的下降。

granularity 是可选的聚合粒度参数, 数据库会将一个时间段的数据聚合存放, 这个参数影响性能, 不影响功能。

expireAfterSeconds 影响数据的过期, 是通过每 60s 一次的检测实现的。

时序集合对于查找连续时间块的指标具有非常好的性能, 同时可以降低磁盘占用, 相比与其他时序数据库, 需要注意的点有:

  1. 时序集合底层存储依然是 WiredTiger, 但是现在创建集合, 已经支持了表级别 storageEngine, 未来不排除会有各种各样的集合级引擎出现;

  2. 没有为时序查询定制新的语法, 各种聚合依然需要通过 aggregate 进行, 或者通过 Materialized Views 创建视图来查看数据;

  3. 索引上, 时序集合已经按照常用的查询模式, 对数据进行了索引, 但是这个索引不会被 list 索引命令列出来, 同时, 如果有自己的针对 metafield 的过滤需求, 可以正常创建二级索引;

  4. 和其他时序引擎一样, 为了保证存储效率, MongoDB 的时序集合不支持更新与手动删除, 另外, 在当前版本里, 时序集合不支持分片

所以, 时序集合是一个在使用上与传统集合几乎无差别, 但是针对时序场景做了特定优化的集合类型, 这是一个非常好的开始, 加上创建集合时, 支持了 stotageEngine 参数, 我们期待在 MongoDB 上, 可以出现集合级别的引擎这种特性, 将各种数据库的优势集中到一起, 不仅仅是文档, 而是 ALL IN ONE DATABASE!

<

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值