以往直到现在我所负责的业务场景没有使用MangoDB的,不过对于NoSQL的流行以及兴趣,阅读了一些文档做了简单的了解。待后续需要使用时再深入研究。
本文不介绍具体的语法。
基本信息
- 类似Json的BSON存储,以支持非结构化的数据
- 不支持join
- 数据运行时加载到内存
- 支持sharding
- 4.0版本才开始引入事务
与MySql的结构对应关系
概念名 | MySql | MangoDB |
---|---|---|
库 | 库 | 库 |
表 | 表 | 表(集合collection) |
记录 | 行 | 文档 |
主备切换相关
- 一主多备
- 主节点挂掉时,选举出一个主节点
- 存在特殊的arbiter节点只选举不读写
- 选举可能失败,此时只能读不能写
锁机制
2.2版本之前,整个库一个锁
2.2版本之后,表锁
3.4版本开始,记录级别
常见应用场景
- 地图数据(如高德)
- 外卖行业(地图配送相关)
- 非结构化的商品库(表既要存影像类商品,又要存电子类产品)
- 流量、日志分析