TOUVE 发表于 2015-11-11 07:56:21

Mongo DB的分析和应用场景

  MongoDB资料汇总:http://blog.nosqlfan.com/html/3548.html
  MongoDB 是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。 MongoDB工作在收集和文件的概念
  
任何关系型数据库,具有典型的架构设计,显示表和这些表之间的关系。虽然在 MongoDB 中,没有什么关系的概念。
MongoDB比RDBMS的优势


[*]架构:MongoDB是文档型数据库,其中一个集合保存不同的不同的文件。字段的数量,内容和该文件的大小可以是不同于从一个文件复制到另一个。
[*]一个单一的对象是结构清晰
[*]没有复杂的连接
[*]深查询能力。 MongoDB支持动态查询使用基于文档的查询语言,如SQL几乎一样强大的文件
[*]调优
[*]易于规模化:MongoDB是易于扩展
[*]不需要数据库对象的应用程序对象转换/映射
[*]使用内部存储器存储(窗口)工作组,从而实现更快的数据存取
为什么要使用MongoDB


[*]JSON风格文件的形式,面向文档存储:数据存储
[*]对任何属性可索引
[*]复制和高可用性
[*]自动分片
[*]丰富的查询
[*]快速就地更新
[*]MongoDB的专业技术支持
应该在哪里使用MongoDB?


[*]大数据
[*]内容管理和交付
[*]移动和社交基础设施
[*]用户数据管理(日志)
[*]数据平台
[*]mongo使用场合
[*]
mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。mongo适用于以下场景:
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进行查询和报表。从这个意义上,mongodb提供了一个更快速,更使用的view





不适合的场景:
a.高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
b.传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
c.需要SQL的问题
D.重要数据,关系数据

         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Mongo DB的分析和应用场景