MongoDB 官方文档笔记之存储 Storage
两种存储引擎
WiredTiger 存储引擎,默认
In-memory 内存存储引擎
WiredTiger
文档级并发模型
支持多个客户端同时修改集合的不同文档。
快照和检查点 checkpoint
WiredTiger使用MultiVersion(MVVC)并发控制。
检查点可以充当恢复点
日志 Journal
日志与检查点结合使用,确保数据持久性。日志保留检查点之间的数据修改
日志通过快速压缩库进行压缩,通过 storage.wiredTiger.engineConfig.journalCompressor 配置压缩算法或不压缩。
压缩
MongoDB支持对集合和索引压缩,压缩可以减少存储空间,但增加CPU开销。
MongoDB Wiredtiger存储引擎实现原理:https://mongoing.com/archives/2540
MongoDB 存储引擎 WiredTiger 原理解析:https://mongoing.com/archives/5367
In-Memory内存存储引擎
文档级并发模型
同样支持文档级并发
持久性
没有持久化支持,所有数据均在内存中,包括应用程序数据和系统数据,例如用户,权限,索引,副本集配置,分片群集配置等。
日志功能不适用内存引擎
日志
使用日志记录的恢复过程:
1.在数据文件中查找最后一个检查点 checkpoint 的标识符。
2.在日记 journal 文件中搜索与最后一个检查点 checkpoint 的标识符匹配的记录。
3.从上一个检查点 checkpoint 开始,将操作应用于日志文件。
使用日志功能,WiredTiger为每个客户端发起的写操作创建一个日记记录。日志记录包括由初始写入引起的任何内部写入操作。
例如,对集合中文档的更新可能会导致对索引的修改;WiredTiger创建单个日志记录,其中包含更新操作及其关联的索引修改。
https://docs.mongoing.com/cun-chu/journaling
本文由mdnice多平台发布
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~