MariaDB 和 MySQL 的区别

2025年3月17日 | 阅读 10 分钟

MariaDB 和 MySQL 都是关系型数据库管理系统(RDBMS),它们都是免费且开源的软件。2009 年,MySQL 的创始人 Michael Monty Widenius 决定开发一个 MySQL 的分支,并将其命名为 MariaDB。MariaDB 为 MySQL 提供商业支持。

这两种 RDBMS 软件都用于将数据以表格形式存储在数据库中,并且各有优势,因此组织的选择取决于具体的业务需求和目标。让我们根据以下几点来了解 MariaDB 和 MySQL 的主要区别:

MariaDB vs MySQL

MySQL

流行的关系型数据库管理系统 "MySQL" 使用 SQL(结构化查询语言)来处理数据结构。此外,尽管它起源于 Oracle 并由 Oracle 管理,但其公开版本于 1995 年 5 月 23 日发布。由于它在各种小型和大型企业中运行,因此能够处理大量数据。在 Oracle 接管 MySQL 的一系列服务职责后不久,某些数据库用户出现了投诉,因此开发了 MariaDB。

MariaDB

MariaDB 服务器是一个流行的开源关系型数据库管理系统(RDBMS),以其与 MySQL 的相似性而闻名,因此它是最常见的数据库技术。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 收购。因此,目前 MySQL 由 Oracle Corporation 开发和维护。

3) 使用的编程语言

MariaDB 用 C、C++PerlBash 编程语言编写。相比之下,MySQL 用 C 和 C++ 编程语言编写。

4) 用户

MariaDB 的主要客户包括 DBS、Red hat、Google、Ubuntu、Wikipedia、SuSE 等;而 MySQL 的主要用户包括 YouTube、Twitter、Facebook、Netflix、NASA、Tesla 等。

5) 兼容性

MySQL 是一个开源的 RDBMS,以表、触发器、视图或存储过程的形式存储数据。它使用不同的键,如唯一键、主键、外键等,来维护数据完整性和冗余。另一方面,MariaDB 是 MySQL 的扩展版本(分支),具有新的广泛功能,如带参数的游标、不可见列、新语句等。这些附加功能使其非常出色,可以帮助我们用 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 在 MariaDB 源和二进制包中包含 12 个新的附加存储引擎。

8) 加密

MariaDB 支持临时表加密和二进制日志加密。另一方面,MySQL 不支持临时表的加密和二进制日志加密。但是,如果配置得当,它会加密 undo/redo 日志。

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 表中的所有记录

从 STUDENT 表中删除记录

MariaDB vs. MySQL

让我们以表格形式总结上述差异。

参数MySQLMariaDB
定义它是一个由瑞典公司 MYSQL AB 构建的开源、跨平台关系型数据库管理系统。目前由 Oracle Corporation 开发和维护。它是 MySQL 数据库管理系统的一个分支,具有处理小型和企业级任务的数据处理能力。分支意味着保证 MySQL 代码库将永远免费。它是 MySQL 的改进和高级版本。
首次发布MySQL 的第一个版本发布于 1995 年 5 月。MariaDB 的第一个版本发布于 2009 年 10 月。
当前版本MySQL 的最新版本是 8.0.20,发布于 2020 年 4 月 27 日。MariaDB 的最新版本是 10.4.13,发布于 2020 年 5 月 12 日。
协议MySQLMySQL 和 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
检查约束它没有 CHECK 约束。它提供对 CHECK 约束的支持。
速度与 MariaDB 相比,它的速度较慢。它提供更快的速度,因为它是 MySQL 的高级版本。
连接池MySQL 线程池一次最多支持不到 200,000 个连接。MariaDB 具有先进的线程池,可提供更快的执行,并且一次最多支持超过 200,000 个连接。
开发封闭开放
文档维护Oracle Corporation 维护文档。MariaDB 基金会和其他开发人员也可以参与开发和维护。
路由它有 MySQL Router。它有 MariaDB MaxScale。
数据掩码它不允许数据掩码。它允许数据掩码。
GUI它提供 MySQL Workbench。它提供 SQLyog。
公司用途GitHub、美国海军、NASA、Tesla、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 的改进版本。
  • 它提供了许多存储引擎,包括用于处理其他 RDBMS 数据源的高性能存储引擎。
  • 它可以在各种操作系统上运行,并支持多种编程语言。
  • 它支持 PHP,PHP 是流行的 Web 开发语言之一。
  • 它提供 Galera 集群技术。

MariaDB 的优缺点

  • 首先,也是最根本的,MariaDB 与旧版本兼容,因此您可以运行最新版本,同时仍与旧版本保持兼容。在这种情况下,该工具仅意味着考虑到操作系统是 GNU/Linux,它始终由一个大社区维护和更新,这可以被视为其重要特性之一。
  • MariaDB 拥有一个智能的动态线程处理池,负责通过终止不活动的线程来优化服务器。该库的主要优点是其高连接池容量,读取速度几乎提高了 100%,并且能够以更少的资源提供更好的复制,并且在更新时也更快。
  • Galera 实现了内置设计,并停止了从库延迟等问题,同时降低了客户端延迟,提高了节点读取可扩展性。
  • 此外,MariaDB 拥有更多的存储引擎选项,因为其中一些类似于其他 RDBMS 中使用的引擎。数据库的存储引擎有许多类型,它们专门用于完成任务。例如,MariaDB 的 ColumnStore 是为处理数据集/线性可扩展性而设计的。
  • 同样,安装 MariaDB 完全免费,您可以在 GPL 许可证类型下无限制地访问其所有功能。另一方面,该系统也是开源的。

缺点

MySQL Enterprise Edition 拥有一些在 MySQL 社区版中找不到的属性。例如,某些在 MariaDB 中已知缺失的功能。然而,有一些开源平台,例如 MaxScale(由 MariaDB 提供),能够执行数据库中的数据掩码工作。

MySQL 的优缺点

优点

  • 通过内置的数据掩码功能和动态列,我们可以获得一个最安全、最快的数据库。通过将设计的易用性与多种存储引擎相结合,MySQL 为其工作负载找到了最快的执行方案。
  • 然而,由于 Web 应用程序的数据动态性是 MySQL 的专长,因此它可以适应任何上下文。例如,MySQL 是一种可用于电子商务商店网站的数据库,因为它具有出色的事务处理机制。它还通过高级数据安全性进一步实现了这一点,从而为事务提供全面的保护。
  • Oracle 是为 MySQL 平台提供支持的公司。这意味着 MySQL 与第三方应用程序之间存在高兼容性标准。如果需要,它可与大多数托管提供商或 20 种操作系统可靠运行,并具有跨平台兼容性。此外,MySQL 始终能收到及时更新,并且清晰易懂。

缺点

  • 由于复制配置的差异,将 MariaDB 迁移到 MySQL 不会像反向迁移那样直接。
  • MySQL 不支持 Oracle 数据库的另一个原因是其特性。其中,MySQL 不支持 Oracle 提供的面向应用程序的语言 PL/SQL。因此,除了 Oracle PL/SQL 兼容性之外,MariaDB 版本 10.3 还提供了此选项。
  • 此外,MySQL 在管理海量数据方面功能不足,因为它缺乏全面的内存搜索引擎和大规模数据处理方法。凭借 MySQL 的双重许可,不仅基本功能需要付费,而且对于平台至关重要的线程池插件也需要付费。

让我们来看看一些仅在一个数据库中独有的功能:

JSON 数据类型 - 从 5.7 版本开始,MySQL 引入了原生的可靠 JSON 数据类型(由 RFC7159 定义),可确保轻松有效地访问 JSON(JavaScript Object Notation)中的数据。

MariaDB 开发人员排除了此改进,认为它不属于 SQL 标准。然而,对于从 MySQL 进行复制,其定义仅表示 JSON 是 LONGTEXT 列的别名。MariaDB 声称其方法与传统 MySQL 没有性能差异。但是,他们没有最新的基准来支持这一说法。根据 MariaDB 的说法,受访者解释了他们尚未支持 JSON 的原因。

虽然处理 JSON 的主要区别在于语法,但值得一提的是,MySQL 和 MariaDB 拥有不同的 JSON 相关函数,可以轻松访问、解析和检索 JSON 数据。

可替换身份验证 - 在 MySQL 8.0 中,默认身份验证插件是 caching_sha2_password 插件,而不是 mysql_native_password。这种模拟可以通过使用 SHA-256 算法来提高安全性。它仅通过身份验证插件参与此协议。

加密 - MySQL 加密 redo/undo 日志(仅在配置时),但它不加密临时表空间或二进制日志。这与 MariaDB 不同,MariaDB 支持 mysqldumpslave 加密二进制日志和临时表。

结论

总而言之,MariaDB 和 MySQL 在关系数据库领域都拥有强大的功能,但各有优缺点。MariaDB 像其祖先一样,在兼容性方面加强了 MySQL,同时带来了其他优势。常见的优点包括随附的开源特性、附加存储引擎的应用以及社区开发因素。相比之下,Oracle Corp 支持的 MySQL 确保了稳定、企业级支持以及最先进的安全功能。