Clustered Collections 是 MongoDB 5.3+ 的物理存储优化机制,要求 clustering key 为 _id 或带 unique: true 的单字段,仅支持 WiredTiger 引擎且须创建时启用,乱序写入会严重损害性能。Clustered Collections 是 MongoDB 5.3+ 的新特性,不是传统意义上的"聚集索引"MongoDB 没有像 SQL Server 或 MySQL 那样的 clustered index 概念;clusteredCollection 是一种物理存储优化机制,它让文档按指定字段(必须是 _id 或带唯一约束的单字段)的值顺序落盘,从而减少 I/O、提升范围查询和顺序插入性能。但它不改变查询语法,也不自动加速任意字段的查询------只对按 clustering key 顺序写入/读取的场景有效。只支持 WiredTiger 引擎,且必须在创建集合时启用,无法对已有集合开启clustering key 必须是 _id 或一个带 unique: true 约束的单字段(不能是复合键、不能是数组、不能是嵌套路径)插入时若违反 clustering key 的单调递增/递减趋势(比如乱序写入),会显著拖慢性能,甚至触发大量 page split怎么创建 Clustered Collection:关键参数和限制用 createCollection 命令显式声明,核心是 clusteredIndex 选项。常见错误是漏掉 unique: true 或误用字段类型。db.createCollection("orders", { clusteredIndex: { key: { order_time: 1 }, unique: true }})key 字段必须已建唯一索引(或为 _id),否则命令直接报错:"Cannot create clustered collection without unique constraint on clustering key"如果想用 order_time 作 clustering key,必须先确保该字段全局唯一(比如拼上 UUID 后缀),否则写入会因唯一约束失败而中断不支持 timeSeries 集合、capped 集合、分片集合(sharded collection)插入性能为什么有时反而变差?乱序写入是最大陷阱Clustered Collection 的性能优势完全依赖写入顺序与 clustering key 顺序一致。一旦打乱,WiredTiger 需频繁重排物理页,吞吐骤降,延迟飙升。 WisPaper 复旦大学研发的AI学术搜索工具,5分钟内筛选1000篇论文
相关推荐
大数据魔法师5 小时前
Streamlit(二十三)- 教程(二)- 动态导航AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?yyuuuzz7 小时前
独立站的技术基础与常见运维问题心中有国也有家8 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎卷毛的技术笔记9 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)编程大师哥9 小时前
匿名函数 lambda + 高阶函数vb2008119 小时前
FastAPI APIRouteradrninistrat0r9 小时前
Java调用链MCP分析工具杨充10 小时前
1.3 浮点型数据设计灵魂meilindehuzi_a10 小时前
深入浅出数据结构:Python 字典(Dict)与集合(Set)的哈希表底层全链路追踪