热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL再度失势:继维基百科之后,Google也迁移到了MariaDB

请大家先看一下:对子查询优化,各版本的执行计划,就不难发现为啥谷歌要把MySQL给抛弃了。650)this.srchttp:www.itdaan.com

请大家先看一下:对子查询优化,各版本的执行计划,就不难发现为啥谷歌要把MySQL给抛弃了。


wKiom1NfVryz56B1AAKC3iZzByU389.jpg

wKioL1NfVpOip4c7AAKT3Ys8zWc220.jpg

wKiom1NfVr3SwMqYAAKzETLgqYM238.jpg

很好的一个产品,被Oracle做成了这样。。。


摘要:即使饱受非议,MySQL当下仍然是开源数据库的人气之王。然而光鲜的背后,其神位似乎已摇摇欲坠。继维基百科及多家Linux发行公司弃用MySQL之后,互联网巨头Google也果断使用MariaDB来替换公司内上万的MySQL实例。


尽管被Oracle捕获后,MySQL上的争议就从未停止;但时至今日,MySQL仍是最具人气的开源数据库:

wKiom1NfVxjzLhOsAAGNNaF2rQU448.jpg

简单、免费、扩展性、相对成熟等一直都是MySQL的吸引所在,然而随着自身脚步的放缓、各个竞争对手的追赶,这些杀手级特性已不在有吸力(甚至沦为弱势)。虽然PostgreSQL一直被当作MySQL的直接竞争对手,然而真正给予其致命一击的似乎更像是MariaDB,这个由MySQL旧部所开发的产品。

那些年被重量级用户抛弃的MySQL

MySQL在各大Linux发行版中的失势

由于不满MySQL被Oracle收购后的日渐封闭与缓慢的更新,众多Linux发行版逐渐抛弃了这个人气开源数据库,而转向了MariaDB,其中包括:

  • Fedora Project:2013年元月,Fedora Project开始征集用户使用MariaDB的意向。而在夏季的 Fedora 19 中,Fedora Project已经换用 MariaDB成为依赖软件的默认选择。

  • Slackware Linux:2013年3月23日,最古老的Linux发行版Slackware Linux也宣布使用MariaDB替代MySQL,因为MariaDB社区更有活力也更愿意和开源社区合作。

  • Arch Linux:2013年3月25日,Arch Linux发出公告使用MariaDB代替MySQL,并于1个月内完成转换,由于多种原因,更新需手动执行。

  • Red Hat:2013年6月,Red Hat宣布企业版发行版RHEL 7将用MariaDB替代MySQL。而在今年早些时候,Red Hat的社区发行版 Fedora已宣布从MySQL 切换到MariaDB。

以上是一些不完全的统计(比如还有 openSUSE等等),同时我们也相信,随着MariaDB得到更多的认可,类似的更替将出现在更多的Linux发行版中。


MySQL在重量级公司中的失势

  • Apple:在2011年Sun被Oracle收购不久后,Apple就抛弃了MySQL。当然,他们选择的是PostgreSQL,这里不得不佩服一下Apple高层的远见。

  • Wikipedia:在2012年底,Wikipedia曾公布了一个测试:英文维基的一个从(slave)数据库从MySQL5.1 + Facebook补丁集迁移到了MariaDB 5.5.28。通过全面测试发现,MariaDB的查询效率提升了3%-15%,平均提升了8%,期间并没有任何异常发生;以qp为单位,吞吐量提升了2%-10%。而时隔将近半年,Wikipedia已正式完成迁移。

互联网巨头Google的倒戈

作为最具人气开源数据库,MySQL绝非浪得虚名――除了Apple之外,Google、Facebook、Twitter也大量使用了MySQL,纷纷发布了自己的MySQL分支/补丁集,并为不少公司所采用。然而据国外媒体Theregister了解到,搜索巨头谷歌正在致力于MySQL到MariaDB的迁移,远离这个Oracle支持下的开源数据库:

消息来自11日斯坦福的Extremely Large Databases会议上,在Google指派了一个工程师去MariaDB基金会的一星期后。虽然消息并非Google官方发布,但是却是基于Google高级系统工程师 Jeremy    Cole对MySQL生态系统现状的展示。

据悉,为了让MariaDB更有效,Google正在致力于对它的升级和修补――用以迁移Google上万的MySQL实例。Cole说道:

当下主要运行的MySQL 5.1版本已经不能匹配公司的脚步,因此我们转移到了MariaDB 10.1。

根据SkySQL(MariaDB合并后的公司名,大部分员工由MySQL旧部组成,点击查看详情)Patrik Sallner还透露,在年初Google已经开始与MariaDB基金会达成协作:

他们将先前许多运行在MySQL上的数据库迁移至了MariaDB,我们已经与他们达成合作来致力特性的开发,帮助完成这项迁移。对于我们来说,这是个非常好的借鉴。

Cole还透露,迁移将涉及到上万台的MySQL服务器,当下两个公司正在致力MariaDB可靠性及特性的研发。

同时,Google会将所有MySQL服务器转换成MariaDB。不管Oracle动机与否,通过这项举措,Google将完全消除对其技术的依赖。自MySQL 4.0版本以来,这个开源数据库(经大量修改)就在Google大量使用,最近使用的版本是5.1。据Cole了解到,MariaDB 10.0大致相当于MySQL5.6版本,因此工作量并不是很大。在被问到为什么会选择MariaDB作为MySQL替代,Cole如此解释:

在我看来,除下个别特性及实现方法,两个数据库有着太多相同的特性。但是在理念上,它们却存在着众多的不同。我很希望看到MySQL能有一个单独的社区,然而在Oracle的统治下显然并不可能,而MariaDB的未来则存在太多的可能。

Google大范围的MariaDB可能会从Chocolate Factory尝试开始,用以减少开发者对MySQL的依赖,同样也是对Oracle开源数据库生态系统影响力的削弱。

写在最后

基于Google在开发者心目中的地位,这一举措对MySQL的影响可想而知。虽然我们无法理解Oracle当初间接收购MySQL的动机所在,但是却可以断定当下的局面绝对不是这个数据库巨头想看到的。在未来,MySQL的地位可能会受到更多数据库管理系统的威胁,然而当下给予其“致命一击”的显然当属MariaDB!(审校/王鹏)


文章转自:http://www.csdn.net/article/2013-09-16/2816944-google-mariadb-mysql-migration#6874737-qzone-1-45692-3164aa62427a6e993e88685701624dcc



本文出自 “贺春D的技术专栏” 博客,请务必保留此出处http://hcymysql.blog.51cto.com/5223301/1404583


推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
author-avatar
morimodomasaaki
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有