热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MariaDB10.0数据库和MySQL5.6的区别

去年的5月,我第一次在博客上介绍了关于MariaDB10.0。我们当时收到很多的反馈,在进行众人意见总结后,我们再次的更加深入的解释过MariaDB10.0.在新的一年的伊始,随着MariaDB10.0的Alpha版本的推出,现在应该是时候再多说一点关于MariaDB10.0,特别是
去年的5月,我第一次在博客上介绍了关于MariaDB 10.0。 我们当时收到很多的反馈,在进行众人意见总结后,我们再次的更加深入的解释过MariaDB 10.0. 在新的一年的伊始,随着MariaDB 10.0 的 Alpha版本的推出,现在应该是时候再多说一点关于MariaDB 10.0, 特别是它和MySQL 5.6的一些区别,而这个问题也是我和很多身在MariaDB项目里的人都常常被问及的问题。

首先, 我要着重详述下为什么我们没有把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的代码以后都没有必要进行相应的测试了。我们试想一下,当有这样一个功能要加入到一段代码中,而这个功能原本就是来源于这段代码的情况下,测试将是一个异常重要的过程来保证这个功能的正常运行。

和上文中提到的第二点和第三点一样,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 10.0是一个主要数据库版本,比如组合后的innodb与组合后性能架构,和一个新的全局执行事务id。今年夏天,mariadb 10,有可能被当做GA开放式数据库。(注释)
通过阶梯式的方法,我们的最终目的是聚合或者重新实现mysql5.6的所有功能特色。重新实现的所有功能特色都将同它们的mysql版本兼容。到此为止,maria 10将全面兼容mysql5.6版本。除了顶部框架之外,其中含有众多附加的mariadb数据库的唯一的功能。

重新实现功能的决定很简单。如果从我们或者用户的角度来看,MySQL 5.6缺乏该功能,那么我们就重新实现它。重新实现的决定并不是因为“我想这样做”,或者受“非自主发明综合征”的影响。每个问题都是经过认真而广泛的讨论的。你可以加入邮件列表来参与这些讨论,并且让我们听到你的声音,邮件列表是  https://launchpad.net/~maria-developers网站上的  maria-developers@lists.launchpad.net 。 我们是不是有其他的选择。答案是 Yes。我们本可以把最新版本的MySQL 5.6 拿过来作为MariaDB 5.6 的基础,然后在其之上进行修修补补。但是,我们需要意识到的是:MariaDB 不是一个附加的补丁程序。虽然MairaDB 实在MySQL的基础上建立起来的,但是我们有很多的工程师正在努力工作,他们的功劳是不可低估的。不得不提的是,我们全职的MariaDB 的工程师和QA人员一直在努力MySQL 技术可以更好地为MairaDB服务。

当然,还有另外一条路可以走,就是不再依赖于MySQL,并且不再兼容MySQL,如此,我们将称为一个独立的个体。但是我们不太采取这样的方案。因为我们和众多的MariaDB的用户都收益于MySQL的功能,也很想MariaDB也同样可以有这些特征。

MariaDB 5.5 已经为MairaDB打下一片天地,而且我们自然也会乘机而上。现在,每周都会有更多的下载量,更多的分支是基于MariaDB的,而且更为重要的是已经很越来越多的大型运用案例是在采用MariaDB。
我们在进行MariaDB项目的过程中,一直都努力让MariaDB成为MySQL的一个替代品,而且同时也会有更多的可实现的创新,而这两点,我们一直都很小心地把握一个平衡来分配我们的投入。当然,没有传新,MariaDB永远都不会是一个真正的产品。

加入MariaDB和SkySQL的联合路演,您可以获得更多更新的关于MariaDB的消息。我们也很期待听到你们的建议和意见。路由的时间表和预订信息见here.

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • shell脚本实战 pdf_Shell 脚本操作数据库实战
    安装mariadb数据库(默认没有密码,直接mysql即可进入数据库管理控制台)yuminstallmariadbmariadb-serv ... [详细]
  • MFC程序连接MySQL成功实现查询功能,但无法实现修改操作——详解查询语句在MySQL中的使用过程
    selectxxx,xxx,xxxfromxxxwherexxxxxx,xxxxxx程序的日常开发中,我们经常会写到各种各样的简单的,复杂的查询sql语 ... [详细]
  • 阿里云主机实战应用之centos7上的防火墙设置
    最近公司又上了一台服务器,以前都是用centos6系统,这次选择使用了centos7系统的安装镜像,因为现在程序版本在centos7上一般php默认就是5.4以上的,mysql也 ... [详细]
  • 数据库进入全新时代,腾讯云发布五大数据库提前布局
    8月28日,腾讯云数据库在京正式启动战略升级,宣布未来将聚焦云原生、自治、超融合三大战略方向,以用户为中心,联接未来。并在现场面向全球用户同步发布五大战略级新品,包括数据库智能管家 ... [详细]
  • MySQL/MariaDB/PerconaDB提权条件漏洞
    背景  2016年11月01日,国外安全研究员DawidGolunski在MyS ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • centos7如何利用yum安装mysql 8.0.12
    这篇文章将为大家详细讲解有关centos7如何利用yum安装mysql8.0.12,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了CentOS7编译mysql8.0.12相关的知识,希望对你有一定的参考价值。步骤一:安装 ... [详细]
author-avatar
圆季
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有