一文告诉你全世界最顶级的开发者都在使用什么数据库

作为一名IT行业从业者,其实从去年已经隐隐约约感觉到数据库的有变化,只是没有想到变得这么快。今年的一些事情实实在在地给了某些数据库重击,如果以前去某数据库还是喊喊,然后该用还用,今年从传统领域刮起的去某数据库的风,已经开始了,并且后面的乌云密布也看得见。

最近看一篇国外的开源产品提供厂商的一篇文字,主要是在询问了他的几百位客户后得出了下图中的2019年数据库的使用趋势。

从图中可以看出,MySQL以38.9%的使用率高居榜首,其次是MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和Cassandra(3.0%)。在这些数据库中,Oracle仅占1.8%,而CouchDB、Berkeley DB、Microsoft SQL Server、Redshift、Firebase、Elasticsearch 整合后的影响力和用户的总和仅为2.4%。

但该调查报告却与DB-engine排名趋势流行度报告大相径庭,Oracle数据库在此报告中排名第一,不过笔者认为,任何文字都是可能是偏颇或有倾向性的,每个人看完后都可能有自己的想法,或认同或反对,就如同最近最热的一句话“人心中的成见是一座大山,任你怎么努力休想搬动”。

MySQL 仍然是排名第一的免费开源数据库,占开源数据库使用量的 30% 以上。这并不奇怪,根据 DB-Engines,MySQL 多年来一直保持在这个位置。根据笔者多年来的从业经验,我认为MySQL数据库确实配得上这个排名,原因如下。

1.完全开源

MySQL最强大的优势之一在于他的数据库管理系统(DBMS,Database Management System)是一个开源系统。当然,开源并不意味着免费,它还是有许多付费功能。但是开源的特点给予用户可以根据自己需要修改DBMS的自由。 MySQL采用了GPL(General Public License),这意味着授权给用户可以阅读,修改和优化源代码,这样即使是免费版的MySQL的功能也足够强大。这也是MySQL如此受欢迎的原因之 一。

2.快速更新和用户友好

在其他数据库(例如Orcale、MSSQL Sever)更新缓慢的时候,MySQL很少让他的用户等待。每当新的版本出来之后,MySQL都会成为大多数服务器的主要数据库。Linux web服务器已经成为现在web服务器的主流,MySQL在linux服务器上面也得到了广泛的应用。

3.WebsitePanel,phpMyAdmin 和MySQl的黄金组合

对于初学者来说,通过虚拟主机商提供的websitepanel控制面板学习MySQL是一个很不错的方法。用户不仅可以观看很多视频教程来学习使用 MySQL,还可以使用PhpMyAdmin通过web方式管理数据库。

PostgreSQL 以 13.4% 的开源数据库用户比例位居第二,紧随其后的是 MongoDB,占 12.2%,位列第三。

如果你经常光顾某些网站,或者大型公众号,你应该知道今年最热的事情有两个,postgresql和大数据,今年算是postgresql在中国的开始发展的元年,知道的人和使用的人也越来越多。

根据DB-engine数据库流行榜发布的数据显示,Oracle与MySQL与去年相比都产生了一定的退步,唯独postgresql呈现上升趋势,比去年同月份提高了85.18%,这进一步说明数据库领域正在涌现出更多的新生力量,与之前将所有鸡蛋都放在一个篮子里的传统策略相比,IT行业的工作者正在使用多种数据库来支持他们的产品,多数据库类型的使用在过去10年出现了爆炸式增长。

在我们的调查中,几乎有一半实际上使用不止一种类型的数据库来支持他们的应用程序,而不是单个数据库,使用多个数据库的比例为44.3%,使用一个数据库的比例为55.7%,他们喜欢的数据库组合如下。

现在,让我们仔细研究一下在单个应用程序中最常用的数据库类型。

在下面的图表中,左边列中的数据库表示该数据库类型的样本量,上面列出的数据库表示与该数据库类型组合的百分比。蓝色显示的单元格表示 100% 的部署组合,而黄色表示 0% 的组合。

因此,如下面的数据库组合热图所示,MySQL 是我们与其他数据库类型结合最频繁的数据库。但是,虽然其他数据库类型经常与 MySQL 一起使用,但这并不意味着 MySQL 部署总是使用另一种数据库类型。这可以在 MySQL 的第一行看到,其颜色为浅蓝到黄色,相比之下,MySQL 第一列的颜色要和表示 100% 组合的蓝色的匹配度高许多。

用黑色边框突出显示的单元格表示仅利用这一种数据库类型的部署,其中仅使用 MySQL 的单元格占部署总数的 23%。

其实,这些数据也比较精准的反映了国内的情况,从2005年开始,IT企业在数据库的发展方向上就已经有了一些变化。

2007年开始阿里巴巴的IT开销史无前例,一度成为IBM、Oracle中国的标杆客户,淘宝、阿里巴巴B2B和支付宝等公司,98%以上的软件系统和业务都是采用Oracle数据库提供数据服务。2009年淘宝更是上了全球排名前几位的大RAC集群,据说当年有16个节点。每天早上CPU还是跑到98%。换句话来说,三年几千万买Oracle产品+服务也没办法支撑阿里成长的速度,只能开启自研模式,于是就有了Oracle全面转向MySQL的进程。

拆分Oracle数据库+Hadoop其实也可以撑一撑,但是这样的话,还要向Oracle购买更多的License(再花几千万,不是没钱,是即便花钱也不能彻底解决问题)。因此,阿里巴巴B2B将中文站压力和数据容量最大的Offer数据库,成功从Oracle数据库+IBM小型机+EMC2存储设备,迁移到MySQL数据库+PC Server的模式,所以淘宝2013年下线了最后一个Oracle,2014年支付宝交易替换了Oracle,2016年支付宝总账全面用OceanBase替换Oracle。

发展趋势:

1.“去Oracle化”。一方面是Oracle采用scale up而不是scale out的方案;另外一个重要原因是价格。网易和阿里巴巴都曾经以Oracle作为主要的数据库解决方案,投资几千万来采购License。阿里巴巴曾经还自称是互联网企业中Oracle的最大用户。Oracle最大的优势是运维简单,应用开发方便,但是和昂贵的价格相比,这一点不再具备吸引力。

2.优化MySQL数据库。这些互联网企业采用了大量的MySQL服务器集群,最大集群在150台服务器左右。承载了包括博客、电子商务等应用。采用的优化包括:

  • 传统的SQL优化,如减少某个查询涉及到的列,控制索引数量等
  • 闪存介质(SSD或者Flash卡)。这是几乎所有互联网企业都采用的方法,由于测试场景各不相同,因此没法比较谁家的方案更好。大体上分成直接使用闪存介质作为存储系统;优化闪存介质访问方式进一步优化
  • 设计MySQL存储引擎

3.NoSQL数据库。NoSQL对应用养发提出了较高的要求,在项目中不是那么容易推广,一致性要求被放松,但是“原子性”支持需要被保证。一般是为了满足高并发需要才引入。如盛大采用MongoDB,淘宝自研了Tair数据库(已经开源)

4.分布式数据库。众所周知,使用不同的SQL优化与执行方式,数据库的访问性能可能会存在上千上万倍的差距。计算存储分离的核心思想便是在数据存储层面进行一体化存储,而计算层面则有效利用每种执行引擎的特点,针对不同的业务场景进行选择和优化。

所以,如果具有超强的研发团队和运维团队,在云时代还是有机会替代Oracle的,我们也看到伴随着人口红利,在软件开发领域的我国实力已今非昔比,大部分企业的 “去IOE”的进程更多的是自发的因系统架构优化而进行,同时各种数据库技术与产品也蓬勃发展,所以,在技术上看Oracle并非不能取代,更多的是出于综合成本(改造与建设成本、分享)的考量,需要的是时间和意志。

一千个人眼里就有一千个哈姆雷特,在每个开发者和企业的眼中,只有适合自己的数据库才是最好的。

出处:https://www.toutiao.com/a6725284528513876494/(复制到浏览器中打开)

Image placeholder
magic2046
未设置
  57人点赞

没有讨论,发表一下自己的看法吧

推荐文章
Python分析42年高考数据,告诉你高考为什么这么难?

大数据文摘授权转载自数据森麟作者:徐麟对于已经工作的“上班族”来说,6月7号到9号三天无疑是兴奋到飞起的,终于迎来了令人愉悦的端午假期。然而有那么一群人,将在端午节日之际迎来人生特别重要的一次经历或者

网易云音乐热评的规律,44万条数据告诉你

本文转载自凹凸数读网易云的每日推荐里藏着你听过的歌,你听过的歌里藏着你的故事。网易云音乐的评论里,藏着许多人的故事。我们爬取了网易云音乐歌单中48400首歌的444054条热评,来看看网易云的热门评论

为什么学编程?9个理由告诉你编程是最好的工作

  为什么要学习编程?可能大部分给出的答案就是因为开发工作的薪资高啊。的确这是学编程开发的原因之一,但这并不是全部的答案,下面将为大家提供9个理由告诉你编程才是最好的工作。也许你会改变对编程的看法。

三个方面告诉你,为什么说传统安全托管服务已过时

随着组织发展其安全程序,其安全环境的复杂性也在增长。复杂性和变化要求采用一种全新的方式来应对现代安全运营中心(SOC)。根据Gartner的数据现实,到2022年,50%的SOC将转变为具有集体事件响

一座岛告诉你,什么是智慧!

华为中国生态伙伴大会2019已落下帷幕,两天的时间,华为向大家展示了什么是智慧,什么才是真正的数字世界,当然还有那座仅用30天打造的一座“智慧岛”。

技术宅告诉你如何搜索更安全

前言百度从14年开始就已经对外开放了HTTPS的访问,并于15年3月初正式对全网用户进行了HTTPS跳转。你也许会问,切换就切换呗,和我有啥关系?我平常用百度还不是照常顺顺当当的,没感觉到什么切换。话

9 个顶级的JavaScript图表库

数据可视化技术在过去十年中一直在不断改进,现在许多高级图表库可供消费者使用。在2000年代初期,图表生成主要由服务器端图像位图构成。诸如Flash和Silverlight之类的插件提供了更具交互性的图

专访领英工程副总裁张仁辉:如何驯服算法,打造世界级的职位推荐系统?

大数据文摘出品作者:魏子敏、宋欣仪作为全球最大的职业社交网络,创建于2003年的LinkedIn在过去6年间,从一个7000万左右年营收的企业,增长至30亿美元营业额的企业。五年间LinkedIn业务

一文读懂数据库70年发展史

作者:常垒资本 冯斯基顾问:云和恩墨、戴工玖、周家晶零1949-19791956年,周恩来总理亲自领导了“科学技术发展十二年规划”,标志着我国计算机事业的开始。而那时,几乎没有人知道计算技术是怎么回事

可自动生成代码,5款基于AI的顶级开发工具

如今,对机器学习潜力感兴趣的程序员都在讨论,如何使用人工智能和基于人工智能的软件开发工具构建应用程序。例如PyTorch和TensorFlow之类的解决方案。除此之外,机器学习技术正以另一种有趣的方式

解码GaussDB:如何成为世界级数据库?

1、开源GaussDB单机版OLTP;2、成立鲲鹏智能数据产业联盟数据库产业推进组;3、1.5亿元启动基金,发起GaussDB高校金种子发展计划;4、成立十大GaussDB高校联合创新实验室;5、现场

华为“鸿蒙”所涉及的微内核到底是什么?一文带你认识微内核

微内核最近微内核的概念常常被大家提及,同时还有GoogleFuchisa这样的微内核新星,这里让我们一起来认识下微内核吧。背景庞大的UNIX家族计算机技术在二战后快速发展,构成计算机的主要基本单元从电

多次问鼎 NuerIPS、MRQA 等国际顶级比赛,百度 NLP 技术到底有多强?

人工智能技术的发展尤其是深度学习技术的成功运用,推动自然语言处理(NLP)进入了高速发展阶段。NLP目前也是应用范围最广的人工智能技术之一,已在智能搜索、智能客服、智能助手、智能推荐等方面得到了大规模

中国顶级程序员图鉴,最后一个厉害了!

程序员圈子里有很多如明星般闪耀的牛人!有中国第一代程序员求伯君有获得图灵奖的姚期智有产品取得巨大成功的张小龙商业巨子张一鸣影响开源领域的章亦春……他们的最初都是程序员机遇与热爱,把他们送到了不同的方向

Dubbo 毕业,成为 Apache 基金会顶级项目

Dubbo发展史一览2011年10月27日,阿里巴巴开源了自己服务化治理方案的核心框架Dubbo,服务治理的设计理念开始逐渐在国内软件行业中落地,并被广泛应用。自开源后,许多非阿里系公司选择使用Dub

2019年流行的6大顶级DevOps工具

DevOps作为对开发和运维人员都极为重要的系统,有望在2019年甚至更长时间内保持稳定增长。事实上,据IDC预测,到2022年,全球DevOps软件市场将达到80亿美元,比2017年的39亿美元有所

持续可用与CAP理论 – 一个数据库系统开发者的观点

本文作者为蚂蚁金服OceanBase研究员日照,发表于2015年。持续可用本文主要针对金融数据库,认为金融数据库的持续可用包含两点:一个是强一致性;另外一个是高可用性。数据库系统必须是强一致性的系统,

Google 21 岁生日,一文回顾 Google 发展史

9月27日,谷歌在Google搜索引擎首页庆祝自己21岁生日。 在涂鸦存档上,谷歌发布了一封庆祝信: 21年前,两位斯坦福大学博士生谢尔盖·布林和拉里·佩奇发表了一篇有关启动“大型搜索引擎”原

Python教程-一文读懂运算和运算符

Python支持多种运算符,下表按照优先级从高到低的顺序列出了所有的运算符,运算符的优先级指的是多个运算符同时出现时,先做什么运算然后再做什么运算。 [][:] 下标,切片 ** 指数 ~+- 按

一文学会Java死锁和CPU 100% 问题的排查技巧

00本文简介作为一名搞技术的程序猿或者是攻城狮,想必你应该是对下面这两个问题有所了解,说不定你在实际的工作或者面试就有遇到过:第一个问题:Java死锁如何排查和解决?第二个问题:服务器CPU占用率高达

Python面试|一文让你读懂if __name__==’__main__’的含义

程序入口对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C和C++都需要有一个main

一文读懂HBase多租户

本文从三个方面介绍了HBase的多租户实现。上篇文章回顾:HDFS短路读详解多租户(multi-tenancytechnology),参考维基百科定义,它是在探讨与实现如何于多用户的环境下共享相同的系

一文带你掌握常见的Pandas性能优化方法,让你的pandas飞起来!

微信公众号:「Python读财」如有问题或建议,请公众号留言Pandas是Python中用于数据处理与分析的屠龙刀,想必大家也都不陌生,但Pandas在使用上有一些技巧和需要注意的地方,尤其是对于较大

一文读懂原码、反码与补码

一、二进制二进制和十进制一样,也是一种进位计数制,但是它的基数是2。二进制表达式中0和1的位置不同,它所代表的数值也不同。例如,二进制数00001010表示十进制数10。一个二进制数具有两个基本特点:

电商订单履约系统:你每天都在购物,却对它一无所知

01  订单履约概述1-什么是订单履约?订单是一次交易的生命周期,交易开始生成订单,结束的时候完成订单。在天猫或者京东上买东西,最终都会生成一张订单。其实,这个订单就是消费者与平台的一个简单的契约,而