示例描述
在使用 MMAPv1 存储引擎时,MongoDB 的一个常见优化是提前分配所需的内存,以满足不断增长的文档未来会达到的大小。
MMAPv1 中不断增长的文档需要由服务端以相当昂贵的成本进行位置的迁移,而 WiredTiger 的无锁机制(lock-free)和重写(rewrite)更新算法不需要这种处理。
一个相对应的例子就是,直接存储一个二维数据可以做到预分配内存,而存储二维数组转换后的稀疏数组则无法做到预分配内存。
因此,在 MMAPv1 中,更推荐使用预分配模式直接存储原始的二维数组。
优缺点
预分配模式的优点如下:
当预先知道文档结构时,可以简化设计
预分配模式的缺点如下:
简单和性能之间的权衡
0条评论
点击登录参与评论