MongoDB概述
- 定义: MongoDB是一个文档数据库,设计目的在于简化应用程序的开发和扩展。
- 起源: 由DoubleClick创始人Dwight Merriman和Kevin O'Connor于2007年启动,以应对大规模流量需求。
MongoDB发展历程
- 开发背景: 由于关系型数据库无法满足DoubleClick的大规模数据存储需求,开发了自定义数据库。
- 开源发布: MongoDB 1.0于2009年发布,提供文档模型、索引、复制功能和实验性分片功能。
- 设计原则: 快速简单的数据模型,使用Java/JSON,无模式文档,支持水平伸缩和持久性/可用性。
MongoDB的核心优势
- 基于JSON的数据模型,接近开发者的面向对象设计思维。
- 灵活动态的模型,简化数据库设计流程。
- 自动分片、多节点同步和跨中心能力,支持现代化复杂部署。
- 加速上云能力,通过MongoDB Atlas。
MongoDB的适用场景
- 日志记录: 灵活查找和导出,减少开发工作。
- 监控数据存储: 无schema设计,方便增加字段,学习成本低。
- O2O快递应用: 存储位置信息,实现地理位置查询,方便骑手接单。
选择MongoDB的理由
- 成本效益:以较低成本解决问题,包括学习、开发、运维成本。
- 灵活性:适应新项目发展中的不确定性,提供容错性。
- 特定需求:适合嵌套类型数据存储,简化复杂SQL操作。
MongoDB是否选择使用
- 应用是否不需要事务和复杂join?
- 数据模型是否不确定,需要快速迭代开发?
- 应用是否需要高读写QPS?
- 是否需要TB或PB级别数据存储?
- 应用是否需要快速水平扩展?
- 数据是否不能丢失?
- 是否需要高可用性?
- 是否需要大量地理位置或文本查询?
总结
- MongoDB适合嵌套数据存储,简化关系型数据库中的复杂操作。
- 实际产品中,不同数据库应相辅相成。