MongoDB是一个面向文档的数据库系统。使用C++编写,不支持SQL,但有自己功能强大的查询语法。MongoDB使用BSON作为数据存储和传输的格式。BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。MongoDB很像MySQL,document对应MySQL的row,collection对应MySQL的table应用场景:
1.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
2.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。
3.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
4.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。
5.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。
6.重要数据:mysql,一般数据:mongodb,临时数据:memcache
7.对于关系数据表而言,mongodb是提供了一个更快速的视图view;而对于PHP程序而言,mongodb可以作为一个持久化的数组来使用,并且这个持久化的数组还可以支持排序、条件、限制等功能。
8.将mongodb代替mysql的部分功能,主要一个思考点就是:把mongodb当作mysql的一个view(视图),view是将表数据整合成业务数据的关键。比如说对原始数据进行报表,那么就要先把原始数据统计后生成view,在对view进行查询和报表。
不适合的场景:
a.高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
b.传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
c.需要SQL的问题
d.重要数据,关系数据
优点:弱一致性(最终一致),更能保证用户的访问速度文档结构的存储方式,能够更便捷的获取数内置GridFS,高效存储二进制大对象 (比如照片和视频)支持复制集、主备、互为主备、自动分片等特性动态查询全索引支持,扩展到内部对象和内嵌数组
缺点:不支持事务 MongoDB占用空间过大 维护工具不够成熟
MongoDB
最新推荐文章于 2019-06-23 10:19:17 发布