牛叔叔 的笔记

好好学习

2023-01-31 12:33

预分配模式--MongoDB数据模型设计模式

牛叔叔

数据库

(354)

(0)

收藏

示例描述

在使用 MMAPv1 存储引擎时,MongoDB 的一个常见优化是提前分配所需的内存,以满足不断增长的文档未来会达到的大小。

MMAPv1 中不断增长的文档需要由服务端以相当昂贵的成本进行位置的迁移,而 WiredTiger 的无锁机制(lock-free)和重写(rewrite)更新算法不需要这种处理。

一个相对应的例子就是,直接存储一个二维数据可以做到预分配内存,而存储二维数组转换后的稀疏数组则无法做到预分配内存。

因此,在 MMAPv1 中,更推荐使用预分配模式直接存储原始的二维数组。

优缺点

预分配模式的优点如下:

  • 当预先知道文档结构时,可以简化设计

预分配模式的缺点如下:

  • 简单和性能之间的权衡


0条评论

点击登录参与评论