随着 MySQL 被 Oracle 收购,MySQL 的用户和开发者开始质疑开源数据库的命运,与此同时他们开始寻找替代品。
有文章写到了放弃 MySQL 的五大理由: MySQL 不如其它关系型数据库管理系统那样成熟; MySQL 是开源的...但只有近似而已; MySQL 的性能无法与竞争对手相提并论; MySQL 是 Oracle 所有的,而不是社区驱动的; 越来越多的强劲对手。 从 MySQL 转向 MariaDB的代表厂家:谷歌(2013年9月)、RedHat(2013年6月)、维基百科(2013年4月)
MySQL 在 2008 年被Sun以10亿美金所收购,MySQL 创始人 Michael Widenius 则不满 Sun 开发团队脚步过慢,愤而离职成立开源数据库联盟,另外从现有 MySQL 程序代码中,开发出另一个延伸分支版本,也就是名为玛莉亚数据库的企业级开源数据库 。
玛莉亚数据库如同 MySQL 的影子版本,玛莉亚数据库是 MySQL 的一个分支版本(branch),而不是衍生版本(folk),提供的功能可和 MySQL 完全兼容。 从 MySQL 转向 PostgreSQL的代表厂家:苹果(2011年)
PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、 *** 作符、聚集函数、索引方法、过程语言。并且,因为许可证的灵活,任何人都可以以任何目的免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。
PostgreSQL 也受 NoSQL 思想的启发,希望能够在今后可以给使用者更多可定制可调节的功能(不是说这个成熟的关系性数据库系统要向 NoSQL 转变)。 NoSQL(NoSQL = Not Only SQL),意即“不仅仅是 SQL”,是一项全新的数据库革命性运动。NoSQL指的是非关系型的数据库。随着互联网 web2.0网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
其代表的开源软件如:Membase、MongoDB、Hypertable、Apache Cassandra、CouchDB等。 Oracle自 Oracle 10g 后推出对应的免费版。
首先, 要着重详述下为什么我们没有把MySQL 5.6 直接拿过来作为二次开发的基础,去做一个产品,可以称为 MariaDB 5.6. 这个原因的细节直接都没有和众人分享。1. MySQL5.6 的代码库的文件结构已经被改动了。比如单个代码文件已经被分成多个,又或者是某些代码已经被重新归类到了不同的文件内。所以要把MariaDB 去配合现在这个文件结构一定是一个非常消耗时间的过程。而其实确实不是很明白MySQL为什么要改动现有的文件结构。
2. MairaDB 5.5 已经有大量的代码不同于MySQL 5.5 的版本,而且也有很多的新的特征被整合到MariaDB 5.5 中,而这些特征直到 5.6 版本才出现在MySQL中。所以在比较同样功能的MySQL 和MariaDB的版本,同时在完成设计和QA方面的审核后,一个很明显的结论是MariaDB会是一个更好的产品。在大多数情况下,在选择MariaDB的时候,人们会更多的考虑到功能方面的偏好。
3. 所以MySQL的新代码,至少是修改bug的代码以后都没有必要进行相应的测试了。试想一下,当有这样一个功能要加入到一段代码中,而这个功能原本就是来源于这段代码的情况下,测试将是一个异常重要的过程来保证这个功能的正常运行。
sjZ52
翻译于 2年前
0人顶
顶 翻译的不错哦!
和上文中提到的第二点和第三点一样,Stewart Smith在Percona写到关于Mysql最后安全补丁的回归测试和QA如何测试使用MariaDB工程,以及保存在Percona服务器用作回归测试的测试用例的重要性。参考:wrote yesterday about the latest security fix in MySQL introducing a regression
MariaDB不仅仅是Mysql的一个替代品。它的主要目的是创新和提高Mysql的技术,Mysql5.6不是一个合适的创新基础平台,所以就做了下面的事情:
1.由于引入了一些新功能(像 multi-source replication多源复制, Cassandra integration, engine independent statistics独立统计系统等),所以需要搞个新版本。通常当你引入新功能时,你需要新建个版本。
2.下个版本称作“MariaDB5.6”是不准确的,因为他不是基于Mysql5.6,取而代之,决定版本号调为10.0
3.MariaDB引入Mysql5.6作为一种替代方案的话,需要提升很多功能,已经迈出了第一步,正朝着合并或者重建Mysql5.6的功能方向发展。
mariadb与mysql都属于同一类数据库管理系统。但是mariadb与mysql在使用范围和使用目的上都有所不同,两者的主要功能都是为了通过开源社区在维护中,从而获得GPL授权许可。从关系上来看,mariadb是属于数据库管理系统的开发和升级版本,它仅仅代表MySQL的一个分支。1. mariadb与mysql的开发目的不同mariadb是由MySQL的创始人主导开发,在他家公司MySQL卖给sun之后,又被甲骨文收购,这也就意味着MySQL的所有权,现在属于甲骨文网站。因而不得不另行开发mariadb想要通过功能完善,从而实现完全替代MySQL的产品,所以在使用的范围上两者是完全兼容的,并且前者的使用范围更广,他可以实行包括API和命令行,最终想要达到的目的是完全兼容MySQL。蒋丹来说,前者只是后者的一个替代品和升级产品,在开发过程将misqil的弊端进行兼容,从而实现整体SQL的升级。2. mariadb与mysql的适用范围Mariadb的客户端包括Dbedit和navi act系列windows,macos等数据库中的专有应用程序,以及在heidisql中,它能够支持mariadb的所有版本。通俗易懂的来讲,mariadb实现了对MySQL的完全兼容之后,还增添了许多新的功能,从而来让本地的非阻塞 *** 作得到支持以及推动了进度报告。相对来说,mariadb的使用范围要大于MySQL,但是由于两者都在不断更新,最新的MySQL 5.4 innodb的性能也在不断提升,这也就意味着所有的MySQL的连接器应用程序同样可以在mariadb的 *** 控工作,并且实现一个更加封闭的软件项目。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)