设为首页 收藏本站
查看: 1005|回复: 0

[经验分享] MongoDB 初探

[复制链接]

尚未签到

发表于 2015-7-7 10:56:50 | 显示全部楼层 |阅读模式
  什么是MongoDB? 为什么要使用类似mongodb的nosql数据库?
  MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案。它的特点是可扩展,高性能,易使用,模式自由,存储数据非常方便等。 它与我们平常所使用的那种关系型数据库有很大的不同,MongoDB是基于文档(Documents)存储的,Document相当于关系型数据中的每一行的条目,而MongoDB的每个集合(Collection)相当于关系型数据库中的表。MongoDB中Collection之间没有关系型数据库那种很强的关联,所以MongoDB存储相对独立,并且它是一种数据冗余的存储方式,用以加快数据的查询。
  Mongo数据主要特性有:
  1    面向文档存储:(类JSON数据模式简单而强大)。
2    高效的传统存储方式:支持二进制数据及大型对象(如照片和视频)。
3    复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。
4    Auto-Sharding自动分片支持云级扩展性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。
5    动态查询:它支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
6    全索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。
7    支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
  适用场景:
1    适合实时的插入,更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性。
2    适合作为信息基础设施的持久化缓存层。
3    适合由数十或数百台服务器组成的数据库。因为Mongo已经包含对MapReduce引擎的内置支持。
4    Mongo的BSON数据格式非常适合文档化格式的存储及查询。
  不适用场景:
1    高度事务性的系统。
2    传统的商业智能应用。
3    极为复杂的SQL查询。
  MongoDB 与 CAP理论
DSC0000.jpg
  
  
  MongoDB的核心理论就是Document,它是由一个键值对集合构成的,就像是一个HashMap,或是字典。它的存储格式类似一个json,
  {“username”: “Peter”, “age”: 10 }
  MongoDB中的Collection表示一组documents。并且Collection是schema-free的,也就是说没有严格的格式限制,可以随意插入各种不同格式和类型的document。
  例如一个Collection中可以包含
  {“username”: “Peter”}
  {“username”: “Peter”, “age”: 10 }
  {“password”: 11111}
  {“scorelist”: [{“math”:90 } , {“english”:100 }]}   复杂的包含数组类型的数据
  MongoDB中的DataBase用于聚集Collection ,一个MongoDB实例可以host多个Database,而每个database可以认为是完全独立的,类似于SqlServer数据库可以通过host多个数据库一样。
  关于MongoDB的其他内容,都可以在一本叫做《MongoDB权威指南》的书中找到。而且Mongo的官网,就提供了MongoDB的快速入门 等资料,通俗易懂,很容易学习。
  关于Nosql的个人理解:
        Nosql并不是No sql ,而应该更合理地解释为not only sql 或是非关系型数据库。传统的关系型数据库,强化了关系的概念。随着目前互联网应用规模的迅速膨胀,传统的存储模型出现了很多性能瓶颈,很多跨表、跨库、跨物理机器的查询导致数据查询的效率降低。 而nosql数据库,则淡化了关系的概念,通过可能造成数据冗余的代价使得数据存储相对独立,无需交叉查询 ,这也使得Nosql数据库具有了很好的扩展性,因为数据存储相对独立,扩展着实十分方便。并且Nosql数据库普遍具有非常高的读写能力,尤其是大数据量下,这都得益于无关系性和数据库存储结构简单的特性。但是不存在nosql和传统关系型数据库谁好谁差的概念,它们各自存在优缺点,不同场景进行不同的应用,让关系数据库关注在关系上,nosql关注在存储上。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84061-1-1.html 上篇帖子: MongoDB与Tokyo Tyrant性能比较(2):并发写入操作 下篇帖子: .MongoDB管理工具 MongoCola1.2.4 发布 新年快乐
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表