MongoDB凭什么跻身数据库排行前五?


戳蓝字“CSDN云计算”关注我们哦!

640?wx_fmt=jpeg


作者 | 孙浩峰

DB-Engines 数据库流行度排行榜发布了5 月份的数据,前六名的排名“千年不变”,分别是:Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB 和IBM Db2。而其中,MongoDB以比去年同期超出65.96分的成绩继续雄踞榜单前五,这个增幅在全榜仅次于PostgreSQL的77.99,而其相对于4月份的6.10分的增长也是仅次于微软SQL Server排名全榜第二。


640?wx_fmt=png


作为排名前二十中唯一被标注为文档型数据库的MongoDB,能够取得这样的成绩实属不易。2007年,Dwight Merriman, Eliot Horowitz和Kevin Ryan成立了MongoDB的前身10gen软件公司,在成立之初,这家的公司目标是为企业提供云计算服务。在开发云计算产品时,他们准备开发一个类似于数据库的组件,为云计算产品提供存储服务。当时是关系型数据库一统天下的时代,但他们觉得传统的关系型数据库无法满足他们的要求,他们想要一款程序员不懂SQL语言也可以使用的数据存储产品。在网络上找了一圈,不管是开源的还是闭源的产品,都没找到让他们满意的东西,于是他们就决定自己开发数据库。


10gen公司不使用关系型数据库是有一定的原因的,实际上,10gen的创始人都来自谷歌,他们曾经创建了一家叫做DoubleClick的广告公司,后来该公司被谷歌收购。当时他们还在DoubleClick公司的时候,就吃过关系型数据库的苦头。DoubleClick是一家网络广告公司,服务美国众多的知名公司,该公司每秒提供40万个广告,但在可伸缩性和敏捷性方面经常遇到困难,因此他们不得不经常自己开发和使用许多自定义数据存储来解决现有关系型数据库的不足,这让他们很是苦恼。因此他们决定开发一款数据库产品解决他们在DoubleClick时遇到的问题,并为自己的云计算产品提供存储服务。


2009年,经过将近2年的开发,10gen开发出了MongoDB的雏形并将它开源并正式命名为MongoDB,同时成立开源社区,通过社区运营MongoDB。MongoDB并不是“芒果数据库”,Mongo取自单词humongous的中间部分,意味巨大无比的数据库,能够存储海量的数据库。10gen将MongoDB定义为面向集合、模式自由、自由扩展、使用程序语言和API访问的文档数据库。


MongoDB有别于当时其他的数据库产品,使用和安装都非常方便,在代码中通过API就可以操作数据,在当时引起不小的轰动,加上NoSQL非关系型数据库概念开始火起来以及大数据的需求,天时地利人和,MongoDB逐渐流行起来。现在,MongoDB股价已经突破百元大关,市值达到90亿美元。


纵观MongoDB将近12年的发展史,我们可以清晰的看到一个数据库厂商的成长轨迹,以及它之所以能够取得成功的几个原因,即产品定位、技术创新、运营模式、目标愿景。


产品定位:领先的现代通用数据库


虽然以文档数据库起家,但时至今日,MongoDB已经远远不是一个文档数据库的概念所可以囊括的,更多的,MongoDB应该被称作是一款现代通用数据库平台。按照MongoDB 全球高级工程副总裁Richard Kreuter的解释,MongoDB不是一款仅仅只能在单一或某类特定场景应用的数据库平台,它能够广泛的应用于各种应用场景中,譬如搜索、网站实时数据、数据缓存、大尺寸、历史数据存储、高伸缩性场景、对象或JSON 数据存储等。另外,MongoDB具有非常好的灵活性,可以随用户的需求快速开发。MongoDB文档型数据库的特点与传统关系型的表列相比更具有弹性,同时还能做事务性交易,而且,MongoDB可以直接在内存中对数据进行运算,具有很高的速度和效率。因此,现在版本的MongoDB可以支撑各种各样的应用场景的开发需求。


但Richard强调,虽然MongoDB致力于满足80%的用户的需要,但在各个版本当中,MongoDB也会针对普遍的特殊需求推出新的功能,例如,在最新的4.0版本,MongoDB就推出了多文档ACID事务(multi-document ACID transactions)。这也是为什么到现在为止,MongoDB已经拥有超过1万多个企业版正式付费用户的原因。实际上,目前,MongoDB在各行各业、各个地区和国家之间拥有很广泛的用户。在世界“财富一百强”企业中,一半以上的用户都在使用MongoDB,而在一些重点行业,如金融、电信、制造业、电子商务、电商游戏等领域的关键应用中,MongoDB正在被广泛应用,这也从另一个侧面证明了MongoDB产品定位的成功。


640?wx_fmt=png

MongoDB 全球高级工程副总裁Richard Kreuter


技术创新:最好的数据建模数据库


而在技术层面,MongoDB是“最好的数据建模数据库”,Richard对此解释道,传统关联性数据库最早都是用表、列方式来建模,但按此方法完成数据建模后,各个表的关联非常复杂,在这种情况下,想要保持数据库的弹性是非常困难的,譬如,想要为数据库增加一个字段,通常就需要通过分表、分库以及停机等很多复杂的操作才能实现。而MongoDB从设计之初就认识到了弹性对于数据库的重要性,因此,MongoDB的数据建模方式就是要保持这种弹性,能够依据需求很容易更改,而数据库本身的运行不受影响。


MongoDB之所以称作文档型数据库,是因为其将所有的数据都存储在了一个文档中,由于采用了BSON的方式存储数据,故而对JSON格式数据具有非常好的支持性以及友好的表结构修改性,文档式的存储方式,数据友好可见。相比于传统数据库需相对复杂的表、库进行操作以及多次存取数据,MongoDB开发人员不用去记那些表、库之间的各种复杂关系、只需一次存取,就可拿到想要的数据,因此,对开发而言是更容易使用而且是效果更高的。


此外,MongoDB的运行环境非常广泛,这也是MongoDB之所以受到众多用户青睐的一个重要原因,它可以运行在本地的机器上,运行在任何一家云上,可以运行在服务器上,笔记本上,甚至还可以在手机上很流畅的使用,而这可以被称作是MongoDB的“杀手锏”,因为除了MongoDB之外,没有任何数据库可以实现跨越所有的端来运行。这也是当时开发MongoDB的一个宗旨,即开源,不受任何约制,任何人在任何时间任何地点都可以运行MongoDB。Richard强调,MongoDB同时也有一个叫做Atlas的云服务,目前已经在AWS、Google、Azure上提供MongoDB数据库云服务。


Richard总结了MongoDB的最大优势,他认为,所谓最优首先就是要看在各种情况之下对使用者有价值,这才叫最优。MongoDB的文档就是一个JSON格式,这是最广泛应用于交换或是处理数据的一种基本格式。各种网页、移动应用,或者很多商业应用都是用JSON处理数据。MongoDB在处理数据和储存时直接使用JSON格式的数据,是原生的JSON存储,不管是处理、聚合,还是更新,都直接通过JSON来做处理,这就和其他所有的数据库是完全不一样的处理方式。其次,MongoDB的核心是一个原生的分布式的数据库,它有非常丰富的功能支持复制数据,同时可以快速的水平扩展,随需而用。同时,MongoDB还具有传统数据库的优点,比如能够很快的去区隔,能够保持数据的强一致性等等。而且目前,MongoDB最新的4.0版本已经可以支持以前传统关系型数据库才能支持的多文档事务性的交易,并且在应对传统大规模分布式数据库中最大的挑战——数据均衡方面,4.0版本的速度提高了40%,就用户体验方面而言,这又是一个非常重要、也非常吸引人的功能提升。


运营模式:坚定不移的开放和开源


不过,一个产品的成功,并不仅仅是依靠明晰的产品定位和不断创新的技术,商业模式也非常重要。而MongoDB的成功当然也离不开成功的运营模式,而这个运营模式就是开放和开源。


实际上,早在2009年,MongoDB刚刚开发出数据库的雏形时就同时成立了MongoDB的开源社区,坚持通过社区运营MongoDB。MongoDB一直通过开源社区扩大MongoDB的影响力,吸引程序员入住社区,在社区按照不同地区成立不同的用户组,MongoDB刚推向市场的时候,BUG不少,但是MongoDB的开发人员解决问题很及时,态度非常友好,程序员是一个很实在的群里,当他发现你的产品好用时,并且能够及时帮你解决问题时,就会向同行推荐你的产品,这使得MongoDB迅速赢得了众多开发者的好感。


Richard当然也非常清楚这一点,因此,他是MongoDB开源的坚定支持者。Richard表示,MongoDB坚持一定要有社区版的数据库,一方面是因为开发者比较倾向于使用开源的技术,另一方面,是因为开发MongoDB的初衷就是为了让开发者能够更简单和容易的使用数据库,而开源是实现这个初衷的最好方法。而且,MongoDB并不反对开发者对开源版本的MongoDB进行修改。当然,这种修改必须反馈回社区,这就是所谓的Copyleft License。MongoDB自始至终就有Copyleft License。而在去年,针对社区版,MongoDB还提出了SSPL License,即将MongoDB作为云服务提供时,云服务提供者要把所有相关修改的内容和操作平台开源出来,而这也是为了将开源的成果更好的分享给所有的使用者。


Richard强调,MongoDB完全由自己开发,拥有该产品所有的IP,之所以决定将MongoDB开放出来作开源,就是希望能够构建一个开源数据库健康发展的环境,鼓励更多的软件开发商来做开源这件事,而MongoDB以后也会一如既往的持续保持开源的状态。


而另一个对于MongoDB非常重要的运营就是一年一度的MongoDB大会。MongoDB非常重视MongoDB大会,在全球主要城市/地区每年都会举办一次MongoDB大会,在MongoDB大会上,会邀请技术大牛做一些项目上使用MongoDB的干货分享,并与与会观众进行面对面的技术交流。而就在前些天,MongoDB在上海浦东星河湾大酒店成功举办了“2019 MongoDB中国用户大会”。在这场干货满满的数据库技术盛会中,来自全国各地近千名行业客户、合作伙伴和开发者聆听了MongoDB高层、技术大咖、行业用户的主题演讲和互动演示,共同回顾了MongoDB过去一年的发展历程和所取得的不凡成绩,了解了MongoDB数据库最新的特性和功能。而类似这样的活动,无疑极大地推动了MongoDB在市场上的影响力。


没有人使用的技术没有生命力


Richard最后表示,从1960年数据库诞生至今,数据库已经迅速转变为应用当中举足轻重的部分,数据库的设计也随着应用需求的设计不断成长。过去,开发应用可能只是公司企业内部的应用,产生的数据量不大,变化也不多,所以当时数据库尽量做的精简,因为存储太过昂贵。90年代,互联网开始流行起来,网上应用层出不穷,应用开发需求发生了巨大改变,使用者的数量也是大幅提升。而在移动互联时代,应用变成了随时随地,从而颠覆了应用开发的生态和需求,也驱动了数据库的变革。所以不太可能再按照传统数据库的方式去设计数据库产品。因此,未来的数据库应该是能够更加快速和敏捷的进行数据的收集和处理,并具有灵活的弹性扩展能力,而这也是MongoDB未来的发展方向,同时也是支撑MongoDB前进的动力。


“我认为数据库技术前进的阻力,并不是数据库技术本身的挑战,而是在各方面帮助企业适应瞬息万变的业务需求的挑战。软件不是自己去运行,而是要人去用。因此,事实上,最大的挑战是人。数据库永远有新的技术瓶颈,技术没有穷尽,但更重要的是变化,是怎么样花更多的精力和时间来推动这些技术能够被用起来。没有人使用的技术是没有生命的。”Richard说。


“技术以人为本”,这是老孙在听了Richard的话之后第一时间想到的一句话。嗯,老孙想,这或许也是MongoDB能够取得成功的一个重要原因吧。


640?wx_fmt=png

重磅推荐↓ ↓ ↓

640?wx_fmt=jpeg


640?wx_fmt=jpeg


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 苹果宣布加入CNCF;华为要求美国运营商支付专利费;微软删除最大的公开人脸识别数据集

  • 如何给老婆解释什么是微服务?

  • 阿里巴巴杨群:高并发场景下Python的性能挑战

  • 那些去德国的程序员后来怎么样了?

  • 新技术“红”不过十年,半监督学习为什么是个例外?

  • 独家对话V神! 质疑之下的以太坊路在何方?


640?wx_fmt=png真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523412.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业实战_23_MyCat SQL防火墙

接上一篇&#xff1a;企业实战_22_MyCatSQL拦截 https://blog.csdn.net/weixin_40816738/article/details/100073474 文章目录1. SQL防火墙_白名单配置2. 白名单测试3. SQL防火墙_黑名单配置4. SQL防火墙_黑名单测试SQL防火墙&#xff1a;包括2个标签<whitehost></whi…

同样是消息队列,Kafka凭什么速度那么快?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 邴越来源 | 技术琐话Kafka的消息是保存或缓存在磁盘上的&#xff0c;一般认为在磁盘上读写数据是会降低性能的&#xff0c;因为寻址会比较消耗时间&#xff0c;但是实际上&#xff0c;Kafka的特性之一就是高吞吐率。即使是普…

企业实战_10_Mycat集成ZK实现配置同步

主机名IP地址角色数据库mycat192.168.43.32MYCAT ,MYSQL,ZKmycat&#xff08;全局自增id&#xff09;node1192.168.43.104ZKMYSQLorder_db01和order_db01node2192.168.43.217ZK,MYSQLorder_db03和order_db04node3192.168.43.172MYCAT ,MYSQLmycat&#xff08;全局自增id&#x…

亚马逊重组游戏开发部门:数个未发布游戏被“扼杀”;台积电明年开始为苹果iPhone生产5nm处理器……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 盒马送餐机器人、无人化再进…

psp中java,PSP编程概述

元旦准备买NDS&#xff0c;顺带关注了下PSP&#xff0c;其实是想&#xff0c;或许买PSP也不错~PSP很像一个平台&#xff0c;提供了很多东西&#xff0c;譬如官方的PS模拟器~在上面编程也是个不错的想法。国外的一个网站提供了很多信息&#xff0c;PS2Dev Network (http://www.p…

企业实战_18_MyCat_ZK集群安装部署

接上一篇&#xff1a;企业实战_17_MyCat水平扩展_跨分片查询_ER分片 https://gblfy.blog.csdn.net/article/details/100066013 文章目录一、使用ZK记录Mycat的配置1. 操作步骤2. 服务器部署分布二、zk集群安装部署2.1. 安装jdk并验证2.2. ZK下载2.3. node1下载同步zk2.4. 基础配…

分布式精华问答 | 分布式与集群的区别是什么?

什么是分布式计算&#xff1f;所谓分布式计算是一门计算机科学&#xff0c;它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分&#xff0c;然后把这些部分分配给许多计算机进行处理&#xff0c;最后把这些计算结果综合起来得到最终的结果。1Q&#xff1a;…

Mycat设置开机自启

接上一篇&#xff1a;实战_21_Mycat_MySql更新数据库失败 --read-only https://blog.csdn.net/weixin_40816738/article/details/100059688 下载mycat wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz解压即安装mycat tar -zxf Mycat…

最近,京东AR又爆出哪般神奇?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘晶晶只用一部手机就可在线“试用”口红&#xff0c;效果堪比美妆男主李佳琪&#xff0c;厉不厉害&#xff1f;只要轻轻一点就可一目了然购买的家具在家中摆放的效果怎样&#xff0c;神不神奇&#xff1f;时间飞快&#xff…

zookeeper开机自启动

编辑rc.local vim /etc/rc.d/rc.local2.需要指定jdk路径以及zookeeper启动路径 export JAVA_HOME/app/jdk1.8.0_144 /app/zookeeper-3.4.11/bin/zkServer.sh start3. 启动zookeeper cd /app/zookeeper-3.4.11/bin ./zkServer.sh start查看zk启动状态 /app/zookeeper-3.4.11…

10分钟读懂什么是容器云?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 宝哥devops运维来源 | http://t.cn/ECwSNgj容器技术是近几年云行业发展中不可缺少的一环。Docker和k8s的大热极大可能会推动云计算PAAS层的完善和普及。那么容器云到底是怎样的技术形态&#xff1f;究竟是概念还是可落地的应…

企业实战_19_MyCat初始化ZK并配置Mycat支持ZK

接上一篇&#xff1a;企业实战_18_MyCat_ZK集群安装部署 https://gblfy.blog.csdn.net/article/details/100075631 文章目录一、初始化集群中的数据1. 配置复制2. 初始化zookeeper集群中的数据二、验证数据是否被初始化到集群中2.1. 进入mycat01服务节点2.2. 使用ls命令查看当前…

Hadoop精华问答 | 基于Hadoop的数据中心有什么好处?

戳蓝字“CSDN云计算”关注我们哦&#xff01;2006年项目成立的一开始,“Hadoop”这个单词只代表了两个组件——HDFS和MapReduce。到现在的13个年头,这个单词代表的是“核心”&#xff0c;今天我们就来看看关于Hadoop的精华问答。1Q&#xff1a;基于Hadoop的数据中心有什么好处&…

企业实战_20_MyCat使用HAPpoxy对Mycat负载均衡

上一篇&#xff1a;企业实战_19_MyCat初始化ZK并配置Mycat支持ZK https://gblfy.blog.csdn.net/article/details/100087824 解决了引入多个mycat节点之间配置文件信息同步问题 如何在多个mycat之间进行负载均衡的问题&#xff1f; 在某一个mycat节点出现宕机之后&#xff0c;我…

安全,从写第一行代码开始!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘晶晶伴随5G时代的脚步渐进&#xff0c;物联网发展也将成井喷式增长&#xff0c;“网络安全”这个老生常谈的话题似乎进入了新阶段。数据是天使&#xff1f;还是魔鬼&#xff1f;归根结底&#xff0c;没有安全保障的物联网终…

Linux zookeeper下载、单点部署

说明地址ziphttp://mirror.bit.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz命令下载wget http://mirror.bit.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.5-bin.tar.gz http://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zoo…

聚科技精英,享开源之美- 2019 Open Source Summit 主题演讲+项目亮点

2019年6月24-26日&#xff0c;在上海世博中心&#xff0c;由Linux基金会主办的LinuxCon ContainerCon CloudOpen大会&#xff08;简称LC3&#xff09;将与CNCF主办的KubeCon CloudNativeCon大会合体&#xff0c;自此&#xff0c;大会正式更名为KubeCon CloudNativeCon Ope…

_Mycat-Web之UI监控

接上一篇&#xff1a;企业实战_19_Mycatkeepalived 安装配置验证 https://blog.csdn.net/weixin_40816738/article/details/100103518 文章目录1、zip下载2、wget 下载方式3、解压4、在安装mycat-web之前首先要安装一下5、设置zookeeper服务路径6、启动mycat-web7、浏览器验证8…

企业实战_21_MyCat_keepalived 安装配置验证

接上一篇&#xff1a;企业实战_20_MyCat使用HAPpoxy对Mycat负载均衡 https://gblfy.blog.csdn.net/article/details/100087884 主机名IP地址角色mycat192.168.43.32MYCAT MYSQL,ZK,Haproxy,Keepalivednode1192.168.43.104MYSQL,ZKnode2192.168.43.217MYSQL,ZKnode3192.168.43.1…

为什么说 5G 是物联网的时代?

受 5G 冲击最大的领域终将会是谁&#xff1f;作者 | 屠敏 整理出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;提及当前科技圈有哪些热点词&#xff0c;那 5G 必是其中之一。6 月 6 日&#xff0c;工业和信息化部正式向中国移动、中国联通、中国电信和中国广电发布…