前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB Clustered Collection

MongoDB Clustered Collection

作者头像
shysh95
发布2024-06-03 10:51:23
560
发布2024-06-03 10:51:23
举报
文章被收录于专栏:shysh95shysh95

Hi~朋友,关注置顶防止错过消息

Clustered Collection在MongoDB中索引和Document存储在同一个WiredTiger文件中,存储和索引更加高效,MongoDB 5.3以后支持创建聚簇集合,创建方式如下:

  1. db.createCollection(
  2. "stocks",
  3. { clusteredIndex: { "key": { _id: 1}, "unique": true, "name": "stocks clustered key"} }
  4. )

创建该类型的结合时需要指定clusteredIndex此参数,已经存在的表可以通过以下命令检测是否时聚簇集合:

  1. db.getCollectionInfos({name: "collection name"});

Clustered Collection好处

  • 不需要二级索引即可对集合进行快速查找
  • 具有更小的存储大小,更高的查询和批量插入性能
  • 不需要TTL Index,在clusteredIndex可以指定expireAfterSeconds,但是当作为TTL index来使用的时候_id字段必须为date类型,删除性能更加高效
  • 插入、删除、更新和查询有额外的性能改进,聚簇集合按照id将索引和文档存储在一起,只需要一次查询即可完成读取,一次写入完成更新,但是非聚簇集合将id索引和文档分开存储,写入和读取都需要两次。

Clustered Collection限制

  • index key必须是{_id: 1}
  • 不可以将一个非聚簇集合转换为聚簇集合
  • 不可以隐藏cluster index
  • 在有二级索引的情况下,聚簇集合可能比非聚簇集合占用更大空间,因为二级索引需要更多的存储来存储聚簇键的引用,尤其时当聚簇键比较大时
  • 聚簇集合不可以是Capped集合

Clustered Collection自定义Index Key和value

通常情况下, clustered index key values会使用Document的ObjectId,但是也可以自定key value,但是key需要满足以下条件:

  • 值必须唯一
  • 值不可变
  • 值尽可能递增,递增的值会提高插入性能
  • key所占的空间尽可能小,更小的key,集合和二级索引占用空间会更加小
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员修炼笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档