MariaDB和MySQL之间的区别
MariaDB和MySQL都是关系型数据库管理系统(RDBMS)的类型,它们是免费且开源的软件。在2009年,MySQL的创始人Michael Monty Widenius决定开发一个MySQL的分支,并将其命名为MariaDB。MariaDB为MySQL提供商业支持。
这两种RDBMS软件都用于在数据库中以表格形式存储数据,并且都有各自的优点,所以组织选择哪个更好取决于具体的需求和目标。让我们在以下几个方面了解MariaDB和MySQL之间的基本区别:
让我们在以下方面了解MariaDB和MySQL之间的区别:
1) 初始发布和稳定发布
MariaDB最初发布于2009年10月29日。其稳定版本发布于2020年5月12日。相比之下,MySQL最初发布于1995年5月23日。其稳定版本发布于2020年4月27日。
2) 开发者
MariaDB由MariaDB Corporation AB和MariaDB Foundation开发。相比之下,MySQL最初由瑞典公司MySQL AB于1994年启动。2008年,Sun Microsystems收购了MySQL AB。随后,2010年,Sun Microsystems由Oracle Corporation领导。因此,Oracle Corporation目前开发和维护MySQL。
3) 使用的编程语言
MariaDB是用C、C++、Perl和Bash编程语言编写的。相反,MySQL是用C和C++编程语言编写的。
4) 用户
MariaDB的重要客户有DBS、红帽、谷歌、Ubuntu、维基百科、SuSE等,而MySQL的重要用户有YouTube、Twitter、Facebook、Netflix、NASA、特斯拉等。
5) 兼容性
MySQL是一个开源的关系型数据库管理系统,它以表、触发器、视图或存储过程的形式存储数据。它使用不同的键,如唯一键、主键、外键等来维护数据的完整性和冗余性。另一方面,MariaDB是MySQL的一个扩展版本(分支),具有新的广泛功能,如带参数的游标、不可见列、NEW语句等等。这些附加功能使其变得出色,帮助我们用MariaDB替代MySQL。它具有与MySQL相似的数据库结构和索引。因此,我们可以在不进行任何修改和更改的情况下从MySQL导入/导出应用到MariaDB中。
6) 版本
在MySQL中,5.1版本和5.5版本之间存在一个版本差距。MySQL的最新版本是v5.8。而MariaDB则有连续的版本,如5.2、5.3。MariaDB版本5.5包含了MySQL版本5.5的所有功能。MariaDB的最新版本是v10.4。
7) 存储引擎
MySQL包含了BLACKHOLE、MyISAM、MERGE、InnoDB、CSV等存储引擎以用于数据存储。而MariaDB则包含了12个新的额外存储引擎和MariaDB源码和二进制包。
8) 加密
MariaDB支持临时表加密和二进制日志加密。而MySQL则不支持临时表加密和二进制日志加密。不过,在配置时,它会对撤消/重做日志进行加密。
9) 密码验证
MySQL包含了通过验证和测试密码来提高安全性的默认功能。而MariaDB没有提供这样的功能。
10) 性能
由于MariaDB包含了更多的存储引擎,它能够在数据上执行插入、更新和删除等不同操作时提供快速执行。MariaDB的性能比MySQL快4倍。相比之下,MySQL的执行速度无法和MariaDB一样快。
11) 复制
不同版本的MariaDB允许我们将数据从MySQL服务器复制到MariaDB服务器。相反,MySQL版本不允许从MariaDB服务器复制数据到它。MySQL提供主从复制,而MariaDB提供数据的主主复制和主从复制。
12) 云平台
MySQL可作为Google Cloud平台的托管服务,在 Amazon Web Services(AWS) 上作为服务,在Rackspace Cloud和Microsoft Azure上也可用。而MariaDB只在Rackspace Cloud、 Microsoft Azure 和AWS上作为服务提供。
13) 许可证
MariaDB只包含GPLv2许可证(适用于社区服务器)。而MySQL提供两种许可证:GPLv2许可证(适用于社区服务器)和企业许可证。
14) 语法
虽然 MariaDB 和 MySQL 之间存在许多差异,但它们的语法结构是相同的。
让我们看一下如何操作:
要从STUDENT表中选择所有记录:
MariaDB: SELECT * FROM STUDENT;
MySQL: SELECT * FROM STUDENT;
删除学生表中的记录:
MariaDB: DELETE FROM STUDENT <where condition>;
MySQL: DELETE FROM STUDENT <where condition>;
MariaDB vs. MySQL
让我们以表格形式总结上述差异。
参数 | MySQL | MariaDB |
---|---|---|
定义 | 这是一个由瑞典公司MYSQL AB开发的开源、跨平台的关系型数据库管理系统。目前由Oracle Corporation进行开发和维护。 | MariaDB是MySQL数据库管理系统的一个分支,具有小型和企业任务的数据处理能力。这个分支意味着MySQL源代码永远免费。它是MySQL的改进和高级版本。 |
首次发布 | MySQL的首个版本发布于1995年5月。 | MariaDB的首个版本发布于2009年10月。 |
当前发布 | MySQL的最新版本是2020年4月27日发布的8.0.20版本。 | MariaDB的最新版本是2020年5月12日发布的10.4.13版本。 |
协议 | MySQL | MySQL和MariaDB |
源代码 | 开源和私有 | 开源 |
复制 | MySQL的版本不允许从MariaDB服务器复制数据。MySQL提供主从复制。 | MariaDB的不同版本允许从MySQL服务器复制数据到MariaDB服务器。MariaDB提供数据的主主复制和主从复制。 |
存储引擎 | 它有限的存储引擎: InnoDB MyISAM BLACKHOLE CSV MEMORY ARCHIVE MERGE | 它有广泛的存储引擎: MyISAM BLACKHOLE CSV MEMORY ARCHIVE MERGE ColumnStore MyRocks Aria SphinxSE TokuDB CONNECT SEQUENCE Spider Cassandra |
检查约束 | 它没有检查约束。 | 它支持检查约束。 |
速度 | 与MariaDB相比,它的速度较慢。 | 由于它是MySQL的高级版本,所以它提供更快的速度。 |
连接池 | MySQL线程池每次只能支持不到200,000个连接。 | MariaDB具有先进的线程池,提供更快的执行速度,每次可以支持超过200,000个连接。 |
开发 | 封闭式 | 开放式 |
文档维护 | Oracle Corporation负责维护文档。 | MariaDB基金会和其他开发人员也可以参与开发和维护。 |
路由 | MySQL有MySQL Router。 | MariaDB有MariaDB MaxScale。 |
数据掩码 | 它不允许数据掩码。 | 它允许数据掩码。 |
图形用户界面 | 它提供MySQL Workbench。 | 它提供SQLyog。 |
公司使用 | GitHub、美国海军、NASA、特斯拉、Netflix、微信、Facebook、Twitter、YouTube和Spotify。 | Google、Craigslist、Wikipedia、archlinux、Red Hat、CentOS和Fedora。 |
MySQL的特点
MySQL数据库的主要特点如下:
- MySQL是一个关系型数据库管理系统,易于使用。我们可以仅使用几个简单的SQL语句来构建和操作MySQL。
- 因为在MySQL中密码是加密的,所以它是安全的。
- 它遵循客户端/服务器模型。
- 它是免费且开源的。
- 它易于扩展,并提供高性能、高灵活性和高生产力。
- 它具有强大的事务支持,允许事务回滚、提交和崩溃恢复。
MariaDB的特点
MariaDB数据库的主要特点如下:
- 它是免费、开源的,并根据GPL、LGPL或BSD许可。
- 它提供向后兼容性。
- 它基于MySQL社区版本。这是因为MariaDB是MySQL的改进版本。
- 它提供许多存储引擎,包括用于与其他关系数据库管理系统数据源共同工作的高性能存储引擎。
- 它可以在各种操作系统上运行,并支持各种编程语言。
- 它支持PHP,这是一种流行的Web开发语言之一。
- 它提供Galera集群技术。