MongoDB_应用程序设计
来源:互联网 发布:cpda数据分析师工资 编辑:程序博客网 时间:2024/05/18 22:56
范式化与反范式化
范式化是将数据分散到多个不同的集合,不同集合之前可以相互引用数据。如果要修改某一块数据,只需要修改保存这一块数据的那一个文档就行了
反范式化是将每个文档所需的数据都嵌入在文档内部。如果数据发生变化,所有相关文档都需要进行更新。但是在执行查询时,只需要查询一次就可以得到所有数据
如果数据更新频繁,那么反范式化更好
内嵌数据与引用数据的比较:
更适合内嵌 更适合引用子文档较小 子文档较大数据不会定期改表 数据经常改变最终数据一致即可 中间阶段的数据必须一致文档数据小幅增加 文档数据大幅增加数据通常需要执行二次查询才能获得 数据通常不包含在结果中快速读取 快速写入
优化数据操作
对读取操作的优化通常包括正确使用索引,以及尽可能将所需信息放在单个文档中返回。对写入操作的优化通常包括减少索引数量以及尽可能提高更新效率
① 优化文档增长
更新数据时,需要明确更新是否会导致文件体积增长,以及增长程度。
如果增加程度是可预知的,可以为文档预留足够的增长空间,这样可以避免文档移动,可以提高写入速度。可以在创建文档时创建一个占空间比较大的字段,文档创建成功后再将这个字段移除。这样就提前为文档分配了足够的空间供后续使用。
如果文档中有一个字段需要增长,应该尽可能将这个字段放在文档最后的位置,这样可以稍微提高一点性能,因为不需要重写该字段以后的字段。
② 删除旧数据
可用方法:使用固定集合、使用TTL集合、定期删除集合
阅读全文
0 0
- MongoDB_应用程序设计
- MongoDB_排序
- MongoDB_索引
- Mongodb_技巧
- mongodb_权限
- MongoDB_基础知识
- MongoDB_索引
- MongoDB_分片
- MongoDB_管理
- 应用程序设计
- 应用程序设计
- mongodb_创建、删除、更新
- mongodb_创建、删除、更新 .
- mongodb_复制与备份
- MongoDB_条件操作符
- MongoDB_类型操作符
- MongoDB_逻辑操作符
- mongodb_修改器
- 错误:android.content.res.Resources$NotFoundException
- sizeof与strlen简单分辨及程序说明
- BDP
- STM32能不能跑Linux
- python数据结构与算法 (翻译)第一章
- MongoDB_应用程序设计
- 下一代微服务架构——Service Mesh
- Ubuntu 16.04 gtx 1080ti cuda 循环登陆
- 大数据分析学习之路—安装数据分析常用库
- PHP:CURL分别以GET、POST方式请求HTTPS协议接口api
- js DOM操作
- JFinal中的JFinalConfig详解
- kalmanfilter github
- failed to load resource the server responded with a status of 500 (internal server error)