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

到底该不该继续使用MySQL数据库?

2009年,当Oracle收购Sun的时候,最受欢迎的开源数据库MySQL也归入Oracle帐下。从此,人们关于MySQL命运的讨论就没有停止过,MySQL的创始人MichaelMontyWidenius也弄出MariaDB来对抗MySQL。事情过去了几年,现在Oracle还在不断地为MySQL投入人力物力,MySQL

2009年,当Oracle收购Sun的时候,最受欢迎的开源数据库MySQL也归入Oracle帐下。从此,人们关于MySQL命运的讨论就没有停止过,MySQL的创始人Michael Monty Widenius也弄出MariaDB来对抗MySQL。事情过去了几年,现在Oracle还在不断地为MySQL投入人力物力,MySQL

2009年,当Oracle收购Sun的时候,最受欢迎的开源数据库MySQL也归入Oracle帐下。从此,人们关于MySQL命运的讨论就没有停止过,MySQL的创始人Michael “Monty” Widenius也弄出MariaDB来对抗MySQL。事情过去了几年,现在Oracle还在不断地为MySQL投入人力物力,MySQL也得到了进一步完善。然而与此同时,MySQL的衍生版以及NoSQL数据库技术的发展也在不断提速。业界的讨论话题变成了该不该继续使用MySQL。对此,我们整理了来自两个阵营的声音,给出了继续使用和放弃MySQL的五个考虑因素。

正方:继续使用MySQL

1. MySQL上的投资和创新比以往更多了

开源社区的传统认识是Oracle需要MySQL是为了减少对于他们的关系型数据库业务的威胁。 如果微软是被谴责的对象,那么这种谴责是对的,但这里是Oracle。 它的旗舰级数据库显然要高级得多,而MySQL做到最好也只能沾到它的一点边。

自从收购以来,Oracle已经扩大了MySQL团队并且给予他们一个更加成熟的开发过程。相比于传统开源项目由分散在这个星球上的人们协作完成,MySQL的开发和计划更多地由Oracle驱动。

在这段时间里,正如一位开发者所说的那样,这家公司已经在使代码更加模块化。这意味着短期的工作,但却有着长期的回报。在MySQL 5.6中,他们拆分了一个MySQL Server中的重要的锁,也就是说,锁开了(the LOCK_open),而这将带来超过一倍的顶级性能提升。

更何况,MySQL的主存储引擎是InnoDB,而Oracle在2005年收购了InnoDB 。这些同样位于Oracle的InnoDB的开发者们,正在为了更好的集成性能和MySQL与Oracle的数据库团队共同工作。

2. MySQL产品依然稳固.

MariaDB和开源倡导者抱怨说:新的代码在MySQL 5.5没有测试用例,一些企业版5.5内的特性是闭源的。这是一个开源纯度的问题,当然,一个所有用户都关心的事情。

而且,自二月份新版本发布以来,MySQL5.6被认为是一个坚实的、性能良好的产品,包含一些新的特性功能。Oracle花了两年时间将这个里程碑版本放到MySQL社区中测试及获取反馈。

MySQL 5.6从之前的4个CPU线程到现在的64 CPU线程,并发连接的数量较之前几乎增加了两倍,体现出来的是读速度4倍的提升,除此之外还有很多的改进需要花段时间来列出。

数据库集群和复制组的主席Robert Hodges说:他对MySQL的活力毫不质疑,他甚至还遇到一个担忧Mysql会被 Oracle毁掉的经理人,现在的情况是 Oracle正在将MySQL变成一个企业级的数据库管理系统。

3. MySQL被设计着眼于Web开发、云计算及大数据

Oracle在计算发展趋势上没有瞎,并把重点放在网络,云计算和大数据等项目上。侧重点在MySQL和MySQL cluster上,旨在提供伸缩扩展的高性能、高可用性、自愈性和数据的完整性、配置、监控及资源管理、开发的敏捷性和安全性等方面的改进。

为了支持云服务,MySQL通过GTIDs(全球的的交易标识符)这个新特性使得复制功能大大增强。 GTIDs使主从服务器之间的复制进度跟踪和变得简单,可以更容易的从故障中恢复,同时提供灵活配置和多层复写的持续管理。

2013四月,Oracle宣布发布Hadoop的MySQL插件。该插件实现了MySQL到Hadoop/Hive/HDFS间事件发生时的复制,补充了现有的基于批处理的Apache Sqoop连接。

诺基亚是在大数据环境拥抱MySQL的第一个公司,它运维着一个集中的PB级别的Hadoop集群,这个集群和规模100TB的Teradata企业级数据仓库关联着,大量的Oracle和MySQL数据节点及可视化技术使诺基亚世界各地60000+的用户使用大规模数据存储。而MariaDB呢,好像找不到大数据相关的任何事情。

4.MySQL企业版

MySQL企业版在甲骨文收购之前就推出了,但甲骨文已经显着提高了产品。5.6版增加了高可用性功能,如复制,Oracle VM模板,DRBD,甲骨文的Solaris集群,MySQL的Windows故障转移。它还引入了新的方法为新的和现有的应用程序执行基于策略的合规审计。

还有的企业监控器,它持续监控你的数据库,并提供给您最佳实践来实施。它还提供了查询分析器来监视应用程序的性能和Workbench,它提供了数据建模,SQL开发,服务器配置,用户管理和综合管理工具。

5. 现在较之前有更多的MySQL项目

在MySQL AB被收购之前,它在在25个国家有400名员工,其中有70%在家里办公。是否在一定要在一个地方工作一直存在争议。雅虎首席执行官Marissa Mayer说:她结束了在雅虎远程工作的允许,做事情需要合作,即同一建筑物里。

一位Oracle的MySQL架构师在自己的博客上说,Oracle已经变了,整个团队协同工作,尽管有些在红木海岸的巨塔、加利福尼亚或其他的地方,但都在为MySQL特定的项目工作。整个项目组在集群上工作,其中一个工作组负责可管理性,一个优化团队致力于数据库算法的优化,另一个团队解决复制(至关重要云、大数据等),整个团队使项目更具扩展性。

反方:放弃使用MySQL

1. MySQL不像其他关系数据库管理系统般成熟.

MySQL开始时并不是作为一个RDBMS,但后来改变了方向包括进了更多的功能。随着时间的发展,一些成熟的RDBMS被认为比MySQL具有更丰富的功能。如果你想要一个功能丰富的数据库,你可以试一下PostgreSQL或闭源的选项,如Oracle或微软的SQL Server。

PostgreSQL的贡献者Selena Deckelmann说Postgres的被视为Web开发者对关系数据库有需求的新项目的正确选择。“用JSON数据类型和PLV8,Postgres可能成为NoSQL的默认选择”,她说。

2. MySQL是开源的...但只是有些而已

传统来说,MySQL是一个开源数据库,但是在实践中已经不是那种感觉了。在Oracle的大伞下,MySQL现在有专有的、闭源模块。“MySQL看上去仍然很活跃,但是Oracle却陷入开发进程之中,拒绝发布bug的测试用例,MySQL的安全补丁在代码上严格控制,将大量的开源开发人员分配到新绿洲。”Paula Rooney在ZDNet里解释说:是Oracle把MySQL捐献给Apache的时候了吗?

除Mysql之外没有其他开源方案可选了吗,不是的。MariaDB是MySQL的一个分支,仍然是“真正的开源”。SkySQL和Monty Program Ab(MariaDB的合作公司)在今年年初合并了,声明如下:“MariaDB的所有代码都在GPL,LPGL或BSD协议下面发行,MariaDB没有如MySQL Enterprise Edition里的那些闭源模块。事实上,所有MySQL 5.5 Enterprise Edition里的闭源特性都可以在MariaDB开源版本里找到。”

3. MySQL性能方面的缩放性不如其竞争对手

MariaDB的官方博客的提供了MySQL、MariaDB最新版本的详细对比测试,虽然结果很接近,但MariaDB胜出。

PostgreSQL的贡献者Selena Deckelmann说:Heroku Postgres因为几个原因使它更具吸引力,其中包括缩放性。“可以说他们已经运维了最大的数据库托管环境,可以自动处理应用程序的缩放,支持节点冷添加可以非常方便容易的尝试新特性”,她这样说,另外,她补充道:“他们刚宣布支持PLV8,允许你在数据库中运行Javascript而且能更好地利用在9.2及更高版本中可用的JSON数据类型。”

4. MySQL为Oracle拥有而不是社区

MySQL被甲骨文收购后没有显著的方面改变,但Oracle仍拥有它,这使得一些开发者很紧张。“也许,最糟糕的是,开发社区工作者和在Oracle的MySQL开发者一起工作是不可能的,”迈克尔“蒙蒂”纽斯,MySQL和MariaDB创始人这样说。

纽斯指出,Oracle不接受补丁或提供一个未来的路线图。“与MySQL开发者谈论如何实现或当前代码如何运行,这没门”,他说。如果一个开源社区开发的数据库对你很重要的话,纽斯推荐MariaDB(废话!)因为它是建立在MySQL之上的。而且它提供了更多的功能、速度和稳定性,安全问题更少。

5. 可选的方案越来越多

在2013年6月的波士顿峰会上,Red Hat宣布和MySQL分道扬镳,取而代之的是红帽企业版和MariaDB上了同一条船。Fedora已经宣布将在Fedora 19切换到MariaDB分支。Slackware Linux宣布在2013年3月将MySQL切换到MariaDB,而且OpenSUSE在2013年1月也作出了类似的声明。

不止在Linux阵营,2013年4月,Wikimedia基金会宣布全球第七大受欢迎网站Wikipedia正在切换至MariaDB。在声明中,Wikimedia基金会站点的架构师Asher Feldman解释称,MariaDB的优化及增强Percona的XtraDB功能设置是切换的原因。“同样重要的是,作为自由文化运动的支持者,维基基金会更倾向于自由软件项目,那些在免费及企业版间没有授权及分支代码的项目。”他又补充到,“我们欢迎并支持MariaDB 基金会作为一个非盈利组织,尤其是在自由、开放以及MySQL相关的社区方面。”科技记者Steven J. Vaughan-Nichols在2012年底提到,不管你对Oracle或开源与专有软件的比较持什么看法,不管你正在使用的是Linux、Apache、MySQL、PHP/Python/Perl(LAMP)的什么组合,MariaDB在世界最繁忙的Web站点中的优良表现会一步步吸引着你的注意力。

那么大数据呢,技术娴熟的公司知道,MySQL的忠实用户清楚么? MySQL是不再是数据库解决方案小池塘里唯一的大鱼了,相反,MySQL正面临着Oracle免费版的挑战,真正的开源后裔MariaDB、日益流行的PostgreSQL关系型数据库以及日益增长的NoSQL市场,如果你还没换掉MySQL,那现在有充足的理由重新考虑了。

本文来自于OSChina翻译,TechTarget数据库网站进行了整理,原文链接如下:

http://blog.smartbear.com/open-source/5-reasons-its-time-to-ditch-mysql/

http://blog.smartbear.com/open-source/5-reasons-to-stick-with-mysql/


推荐阅读
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
author-avatar
相思和怀恋_811_372
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有