作为一名IT从业者,其实从去年开始,我就隐约感受到了数据库的变化,只是没想到变化的这么快。今年的一些事情确实对一些数据库造成了沉重打击。如果你以前是去某个数据库喊的,那你还是用吧。乌云也可见。最近看了一篇国外开源产品提供商的文章,主要是问了他的几百个客户,得出了下图2019年数据库的使用趋势。从图中可以看出,MySQL以38.9%的使用率高居榜首,其次是MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和Cassandra(3.0%)。在这些数据库中,Oracle仅占1.8%,而CouchDB、BerkeleyDB、MicrosoftSQLServer、Redshift、Firebase和Elasticsearch的影响力和用户加起来仅为2.4%。然而,该调查报告与DB-engine排名趋势流行度报告有很大不同。甲骨文数据库在这份报告中排名第一。但是,笔者认为,任何文字都可能存在偏颇或倾向性。有自己的想法,不管你同意不同意,就像最近最流行的一句话:“人心中的偏见是一座山,无论你怎么努力,都搬不动它。”MySQL仍然是第一大免费和开源数据库,占开源数据库使用量的30%以上。这并不奇怪,根据DB-Engines的说法,MySQL多年来一直保持着这一地位。根据笔者多年的行业经验,我认为MySQL数据库确实配得上这个排名,原因如下。1、完全开源MySQL最强大的优势之一就是它的数据库管理系统(DBMS,DatabaseManagementSystem)是一个开源系统。当然,开源不代表免费,它还是有很多付费功能的。但是开源特性让用户可以根据自己的需要自由修改DBMS。MySQL采用GPL(GeneralPublicLicense),意味着用户有权阅读、修改和优化源代码,因此即使是免费版的MySQL也足够强大。这也是MySQL如此受欢迎的原因之一。2.更新快、用户友好当其他数据库(如Oracle、MSSQLSever)更新缓慢时,MySQL很少让用户等待。每当有新版本出来,MySQL就会成为大部分服务器的主数据库。Linuxweb服务器已经成为web服务器的主流,MySQL在linux服务器上也得到了广泛的应用。3、WebsitePanel、phpMyAdmin和MySQl的黄金组合对于初学者来说,通过虚拟主机提供商提供的websitepanel控制面板是一个很好的学习MySQL的途径。用户不仅可以观看很多视频教程来学习使用MySQL,还可以使用PhpMyAdmin通过网页管理数据库。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和甲骨文中国、淘宝、阿里巴巴B2B和支付宝的标杆客户,98%以上的软件系统和业务使用甲骨文数据库提供数据服务。2009年,淘宝成为全球顶级大型RAC集群之一。据说当年有16个节点。每天早上CPU仍然运行到98%。换句话说,三年内购买数千万的甲骨文产品+服务,支撑不了阿里的增长速度。只能启动自研模式,所以有一个Oracle全面转MySQL的过程。拆分Oracle数据库+Hadoop其实是可以支持的,但是这样的话就得多买Oracle的license了(多花几千万,不是没钱,就是花钱了,你不能完全解决问题)。因此阿里巴巴B2B成功地将压力最大、数据容量最大的Offer数据库从Oracle数据库+IBM小型机+EMC2存储设备迁移到MySQL数据库+PCServer的模式,于是淘宝在2013年下线了最后一个Oracle数据库,2014年,支付宝交易取代Oracle,2016年支付宝总账全面用OceanBase取代Oracle。发展趋势:1.“去甲骨文化”。一方面,Oracle采用scaleup的方案代替scaleout;另一个重要原因是价格。网易和阿里巴巴都使用甲骨文作为主要的数据库解决方案,并投资数千万购买许可证。阿里巴巴曾号称是互联网公司中甲骨文的最大用户。Oracle最大的优势就是运维简单,应用开发方便,但是和昂贵的价格相比,这已经没有吸引力了。2.优化MySQL数据库。这些互联网公司大量使用MySQL服务器集群,最大的集群大约有150台服务器。它托管包括博客和电子商务在内的应用程序。使用的优化包括:传统的SQL优化,比如减少某个查询涉及的列,控制索引的数量等。闪存介质(SSD或闪存卡)。这是几乎所有互联网公司都采用的方法。由于测试场景不同,无法比较谁的方案更好。大致分为直接使用闪存介质作为存储系统;优化闪存介质的访问方式,进一步优化MySQL存储引擎的设计3.NoSQL数据库。NoSQL对应用开发提出了更高的要求。在项目中不太容易推广,一致性要求放宽,但需要保证“原子性”支持。一般是为了满足高并发需求而引入的。比如盛大采用MongoDB,淘宝自研Tair数据库(已经开源)4.分布式数据库。众所周知,使用不同的SQL优化和执行方式,数据库的访问性能可能存在数千倍的差距。计算存储分离的核心思想是在数据存储层面进行集成存储,而在计算层面,有效利用各个执行引擎的特性,针对不同的业务场景进行选择和优化。所以,如果你有超级研发团队和运维团队,在云时代还是有机会取代甲骨文的。我们也看到,有了人口红利,我国在软件开发领域的实力今非昔比。由于系统架构的优化,“去除IOE”的过程更加自发。与此同时,各种数据库技术和产品也百花齐放。因此,从技术角度来说,Oracle并非不可替代,但更多是出于综合成本(Renovationandconstructioncost,sharing)的考虑,需要时间和意志。一千个人眼中有一千个哈姆雷特。在每一个开发者和企业的眼里,只有适合自己的数据库才是最好的。
