全世界最顶级的开发者都在使用什么数据库
点击上方“朱小厮的博客”,选择“设为星标”
后台回复"书",获取
来源:22j.co/cCMD
作为一名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并非不能取代,更多的是出于综合成本(改造与建设成本、分享)的考量,需要的是时间和意志。
一千个人眼里就有一千个哈姆雷特,在每个开发者和企业的眼中,只有适合自己的数据库才是最好的。
想知道更多?扫描下面的二维码关注我后台回复"书",获取近百本电子书入口【精彩推荐】
超清晰的DNS入门指南
深入理解Java Stream流水线
干掉Swagger,试试这个
干掉GuavaCache:Caffeine才是本地缓存的王
如何用ELK搭建TB级的日志系统
深度好文:Linux系统内存知识
日志系统新贵Loki,确实比笨重的ELK轻
日志采集系统都用到哪些技术?
面试官:为什么HashMap的加载因子是0.75?
原创|OpenAPI标准规范
点个赞+在看,少个 bug ????
全世界最顶级的开发者都在使用什么数据库相关推荐
- 一文告诉你全世界最顶级的开发者都在使用什么数据库
作为一名IT行业从业者,其实从去年已经隐隐约约感觉到数据库的有变化,只是没有想到变得这么快.今年的一些事情实实在在地给了某些数据库重击,如果以前去某数据库还是喊喊,然后该用还用,今年从传统领域刮起的去 ...
- 每位开发者都应了解的数据库一致性!
作者 | Roberto Vitillo 译者 | 弯月,责编 | 屠敏 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 想象一下,给变量赋值,然后立即 ...
- 首次曝光 | 阿里数万名开发者都在使用的数据库开发工具到底长什么样?
除了基础的数据查询开发功能,DMS还内置SQL审核.性能诊断优化.测试数据自动生成.多环境数据对比同步.数据库日志追踪回滚.不锁表变更.访问控制.敏感数据脱敏.安全审计等高端功能. 1.丰富的数据源
- iOS 开发者都该认真思考的问题 (精华)
自我定位 如果你是一个iOS开发的新手, 是的, 这个职业的红利期早已过去, 随着APPL的股价大跌, 以及内忧外患不断, iOS这个职业的恐慌指数在不断的增高, 已经对新手不太友好了, 如果你是一个 ...
- 80%开发者都不知道的以太坊骚操作:「事件」和「日志」还可以这么玩!
80%开发者都不知道的以太坊骚操作:「事件」和「日志」还可以这么玩! 2018年05月02日 00:00:00 阅读数:366 作者 | 蔡一 志顶科技技术总监 4月6日,Daniel Larime ...
- c++17新特性_每个开发者都应该了解的一些C++特性
C++ 是一种强大的编程语言,但也因为其复杂性一直让用户望而却步.后来,C++ 决定做出改变,然后发展至今,成了编程社区最受欢迎的语言之一.C++ 有一些新特性非常好用,本文对此进行了介绍,比如 au ...
- C++开发者都应该使用的10个C++11特性
http://blog.jobbole.com/44015/ 感谢冯上(@治不好你我就不是兽医 )的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线.] 在C++11新标准中,语言本 ...
- 开发者都应该使用的10个C++11特性
摘要 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛.不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备.你也许看到过许多类似介绍各种C++11特性的文 ...
- Google 为中国开发者都带来了什么?
Android 10 原生支持 5G,Flutter 1.9.Dart 2.5 正式发布! 作者 | 唐小引写于上海世博中心 封图 | CSDN 付费下载自东方 IC 出品 | GDD 合作伙伴 CS ...
最新文章
- 无锁缓存,每秒10万并发,究竟如何实现?
- slatstack Master的配置
- figma下载_在Figma中进行原型制作的技巧和窍门
- append,appendTo和prepend
- 【Oracle】ORA-27369: job of type EXECUTABLE failed with exit code: Key has expired
- python中的对象_Python中的变量、对象
- windows服务封装程序srvany和nssm的区别
- 灭霸一个响指,开源众包出现在开源中国的社区APP里,一键接单从此无忧。
- 自我介绍html模板王,个性简短自我介绍模板十篇
- 软考中级-软件设计师 复习指南(2021年11月已通过)
- 谢烟客---------Linux之find查找
- 面向Python开发人员的综合置信区间全面理解
- docker服务器搬迁后遇到的问题:宿主ip不通
- scrapy——抓取知乎
- OpenGL学习十九:纹理过滤
- pdf 压缩怎么做?三种办法可供选择
- SAP中总账科目事务FS00/FSP0/FSS0的关系和区别
- jre是否支持html5,html5的结构
- RabbitMQ(消息队列)浅记
- win7计算机开机启动项设置,启动项管理,教您电脑开机启动项怎么设置