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

[经验分享] 为什么使用MongoDB?

[复制链接]

尚未签到

发表于 2018-10-25 08:15:17 | 显示全部楼层 |阅读模式
  1.为什么要学习?
  项目需要,公司需要通过从以往的日志记录以及购买信息中挖掘有价值的信息,数据量大结构复杂;
  项目的需求决定要解决数据库高并发读写,海量数据的高效存储和访问以及高可扩展和高可用性等问题。
  mongoDB(非结构化数据库)不仅可以处理结构化数据,而且更适合处理非结构化数据(文本、图像、超媒体等信息)。它突破了关系型数据库结构定义不易改变而且数据定长的限制,在处理连续信息和非结构化信息中有着关系型数据库无法比拟的优势。
  MongoDB的优势:大数据量高性能,易扩展,高可用性,轻松实现大数据量的存储;完善的Java API,存储格式时JSON,对JAVA,JS来说非常好处理,运维起来很方便,清晰的版本控制,非常活跃的社区。
  关系型数据库不擅长:大量数据的写入;字段不固定,表结构变更;简单查询需要快速返回结果;
  MongoDB在各大互联网公司广泛使用,涉及范围广,使用简单。
  2.MongoDB都有哪些特性?
  面向文档存储:BSON
  面向集合存储:易存储对象类型的数据。
  强大的查询功能:支持丰富的查询表达式。使用json形式的标记,可以查询文档中内嵌的对象及数组。
  完整的查询功能:全索引支持包括内嵌对象及数组。查询优化器生成高效查询计划。
  模式自由:集合中的键不要求一致,键值不要求一致的数据类型。不知道它的任何结构定义
  复制(主从复制/副本集)及自动故障转移:用于故障恢复,读扩展;Mongo数据库支持服务器之间的数据复制,支持主从模式        以及服务器之间的相互复制
  分片(自动分片):用于负载均衡,写扩展。支持水平的数据库集群,动态添加额外的机器
  GridsFS:避免文件系统对目录做文件数目的限制。不会产生磁盘碎片
  支持RUBY,PYTHON,JAVA,C++等多语言,多平台
  查询监视:监视工具用于分析数据库操作性能
  缓存服务:对关系性数据库数据进行缓存,减少数据压力
  自动处理碎片
  三、MongoDB在数据库中存储二进制数据的解决方案?
  两种:第一种是像存储普通数据那样,将文件转化为二进制数据存入mongodb,第二种使用gridfs
  第一种:先读取文件内容,然后塞进bson.binary.Binary对象里,最后像平常那样写入数据库;获取文件一样的简单,像平时那样查找数据,然后将二进制内容写入文件即可;
  第二种如果是大文件可以使用gridfs
  gridfs会把文件分成若干块来存储,每一块的大小默认为256K,所以,如果是小文件,就不要用gridfs来存储了,不然会浪费空间的,gridfs是MongoDB之上的分布式文件系统,可以使用mongodb的分片和复制机制,因为Mongodb分配数据空间时以2GB为单位,所以gridfs不产生磁盘碎片。


运维网声明 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-626120-1-1.html 上篇帖子: mongodb笔记1-Note 下篇帖子: mongodb 3.4单实例安装与备
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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