共计 5100 个字符,预计需要花费 13 分钟才能阅读完成。
这篇文章主要介绍了 MongoDB 为什么在数据库排行前五,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。
DB-Engines 数据库流行度排行榜发布了 5 月份的数据,前六名的排名“千年不变”,分别是:Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB 和 IBM Db2。而其中,MongoDB 以比去年同期超出 65.96 分的成绩继续雄踞榜单前五,这个增幅在全榜仅次于 PostgreSQL 的 77.99,而其相对于 4 月份的 6.10 分的增长也是仅次于微软 SQL Server 排名全榜第二。
作为排名前二十中唯一被标注为文档型数据库的 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 产品定位的成功。
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 能够取得成功的一个重要原因吧。
感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“MongoDB 为什么在数据库排行前五”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!