文档型数据库
指:json document,即以 json 格式存储文档的数据库。 MongoDB 存储时,则是以 BSON 结构存储(即 json 的二进制)
相比于传统 OLTP 优点是什么
从开发角度
- 动态的 schemal,修改 schemal 非常简单
- 数据存储结构,更贴合开发人员
从性能角度
- 嵌套文档,减少表的 Join,减少 I/O
- 支持嵌套文档 key 查询
- 自带集群分片,轻松支持上亿数据存储
从高可用角度
- 支持横向扩展
- 支持自动恢复
- 支持多副本
- MySQL 主从架构,主挂掉,有可能会丢失数据. MongoDB 不会丢失数据
从功能角度
- 支持功能更强大的聚合运算,MySQL 聚合运算功能相对比较弱。
- 支持完整的地理位置查询。
- 支持对 json 字段部分更新, MySQL 要 8.0 才支持该功能。
相比于传统 OLTP 缺点是什么
- 需要更高的成本。生产环境的 MongoDB 至少需要 3 个节点,即主从架构。
架构设计
MongoDB 支持单节点、主从、集群。节点有多种属性,比如隐藏节点、不可选举节点、延迟节点。相比于 MySQL 来说能够支持更多的业务场景。
应用场景
能用 MySQL 的场景,都能用 MongoDB。应用场景比 MySQL 还要更加丰富。能够处理大规模的数据和高度可扩展性。
需要注意的是,MongoDB 虽然支持事务,但是事务密集型的业务场景,MySQL 会更加合适。