关系型数据库于非关系型数据库区别:
关系型数据库:指采用了关系模型来组织数据的数据库。
非关系型数据库:指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统
| 关系型数据库 | mongoDB|
|-表Table-|-集合Collection-|
| 行Row | 文档document |
| 列Column | 字段Field|
| 索引Index| 索引Index |
| 主键| ObjectId |
Mongodb的优点与不足
-
(1)Mongodb的不足之处
在集群分片中的数据分布不均匀 单机可靠性比较差 大数据量持续插入,写入性能有较大波动 磁盘空间占用比较大
-
(2)Mongodb的过人之处
无模式 查询与索引方式灵活,是最像SQL的Nosql 支持复制集、主备、互为主备、自动分片等特性 MongoDB 的应用场景和不适用场景
-
1.适用场景
对于MongoDB实际应用来讲,是否使用MongoDB需要根据项目的特定特点进行甄别,这就需要我们对MongoDB适用和不适用的场景有一定的了解。
根据MongoDB 官网的说明,MongoDB 的适用场景如下:
网站实时数据:mongoDB非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
数据缓存:由于性能很高,MongoDB 也适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。
大尺寸、低价值数据存储:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
高伸缩性场景:MongoDB 非常适合由数十或数百台服务器组成的数据库。MongoDB 的路线图中已经包含对MapReduce 引擎的内置支持。
对象或JSON 数据存储:MongoDB 的BSON 数据格式非常适合文档化格式的存储及查询。 -
2.不适合场景
高度事务性系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
传统的商业智能应用:针对特定问题的BI 数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
需要复杂SQL 查询的问题。
相信通过上面的说明,你已经大致了解了MongoDB 的使用规则,需要说明一点的是,MongoDB 不仅仅
是数据库,更多的使用是将MongoDB 作为一个数据库中间件在实际应用中合理划分使用细节,这一点对
于MongoDB 应用来讲至关重要!