当前位置:嗨网首页>书籍在线阅读

17-考虑文档增大

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

1.5.5 考虑文档增大

当您更新文档时,必须考虑其在文档增大方面的影响。MongoDB在文档中提供了一些留白,以支持更新操作导致的典型增大。然而,如果更新导致文档增大到超过了分配给它的磁盘空间,MongoDB就必须将文档移到磁盘的其他位置,而这将影响系统的性能。频繁地移动文档还可能导致磁盘碎片问题。例如,如果文档包含一个数组,而您在这个数组中添加了很多元素,导致文档大小超过了分配给它的空间,就必须将该文档移到磁盘的其他位置。

缓解文档增大问题的方式之一是,对于可能频繁增长的属性,将其设计为范式化对象。例如,不使用数组来存储Cart对象中的商品,而创建一个用于存储商品的CartItems;这样就可以将加入到购物车的商品作为新对象存储到集合CartItems中,并在Cart对象中引用这些商品。