通常,比较MySQL和MariaDB将是一个有价值的学习。
在这篇博客中,我们比较了MariaDB和MySQL,包括语法,性能,支持,发布节奏的差异,并讨论了何时使用MariaDB与何时使用MySQL。
MySQL和MariaDB简史
当软件被创建时,对于该软件将如何在世界上存在,通常有一个长期的愿景。有些工具是由企业创建的,唯一目的是销售该产品并发展业务。
其他人则采取更利他主义的哲学,并围绕软件是为了更大的利益,应该为所有人自由和公开分发的想法创建一个社区。
这两个想法本质上都没有好坏之分,只是我们在软件生态系统中看到的两种不同的工作模式。
当Oracle收购MySQL时,某些开发人员有远见地将该项目分叉到MariaDB中,以保持其对社区的开源可用性。我们现在拥有的是两种几乎相同的产品,具有不同的许可选项,可以满足任何人的需求。
MariaDBvs.MySQL:主要异同
的确,MariaDB在设计上是MySQL的直接替代品。两者都是用C和C++编写的,但MariaDB在某些方面率先表现更好,它能够处理大量数据、更快的权限检查、二进制加密和临时表空间等功能等等。
MySQL做的MariaDB没有的一件事是对JSON数据类型的支持。MariaDB选择不实现这一点,因为他们认为它不是SQL标准的一部分。
MariaDB默认还提供对AWS密钥管理插件的支持,MySQL仅支持企业版中的那些插件。默认情况下,MySQL启用validate_password插件,从而提高安全性,而MariaDB则不这样做。
版本控制和发布节奏
目前MariaDB的版本从10开始,而MySQL的社区版本仍然是8。最近,由于MariaDB从MySQL中抽离了多少,MariaDB似乎发布得更频繁,因为他们的最新版本是在年11月8日发布的,而MySQL的8.0.27是在10月发布的。虽然从MySQL迁移到MariaDB仍然相当容易,但Maria的10.X版本并不被认为是“插入式的”。
社区支持生命周期
就像所有开源软件一样,每个版本都有到期日期,没有一个版本会永远持续下去。MariaDB和MySQL支持多个版本,从最新和最好的版本到几个版本。MySQL企业版可能会获得EOL支持,但这尚未得到证实。
语法
虽然有很多命令从MySQL转移到MariaDB,但随着MariaDB多年来的发展,语法仍然存在很多差异。有一个名为sql_mode的变量,它由逗号分隔的标志列表组成,每个标志都是SQL语法的不同方面。old_mode与sql_mode非常相似,但它提供了与旧MariaDB版本的兼容性。它的标志不应影响与SQLServer的兼容性。
可执行注释
MariaDB还支持可执行注释。这些用于编写由MariaDB执行的通用查询,并且仅执行某些版本。当最初从MySQL分叉时,可执行命令也可用于MySQL。
分隔符
当涉及到分隔符时,SQLServer使用批处理终止符和查询终止符。批处理终止符是go命令,它告诉Microsoft客户端将我们键入的文本发送到SQL服务器。查询终止符是一个分号,用于告知SQL服务器查询的结束位置。很少需要使用;在SQL服务器中。但是对于MariaDB,您只使用;。
名字
对于MariaDB,大多数名称的最大长度为64个字符。您可能会遇到问题,因为SQL服务器允许个字符,因此在从SQL服务器迁移到MariaDB时请注意此限制。
区分大小写
MariaDB中的默认设置是,如果操作系统区分大小写,例如Linux,MariaDB也将如此。如果使用不区分大小写的操作系统,如Windows,MariaDB将默认使用该设置。默认情况下,SQL服务器在所有操作系统上不区分大小写。在Linux上从SQLServer迁移到MariaDB时,可以将系统变量设置为1lower_case_table_names,允许表名、数据库名和别名不区分大小写。
许可
MariaDB目前在GNU通用公共许可证版本2下获得许可。MySQL的社区版在同一许可证下获得许可。企业支持在MySQL社区版上可用。
性能
谈论性能是一回事,但是当涉及到实际数字时,没有什么比一个好的老式基准测试更能将结果写在纸上了。让MariaDB提供自己的基准测试结果。
虽然有点过时,但它仍然表明在某些情况下,MariaDB肯定可以胜过MySQL。
引用调查结果:
“总的来说,MariaDB在较低规模点的性能明显优于MySQL,并在较高规模上继续保持性能差异。这在图表中表现为MariaDB的延迟低于MySQL,MariaDB的吞吐量高于MySQL。
安全
这两个数据库都被认为是安全的产品,因为两者都被许多巨型徽标用于生产中。实际上,数据库的安全性归结为您自己的配置级别以及如何保护操作系统。
就像所有开源软件一样,两者都存在已知的漏洞,因此使用该软件的最新和最佳版本以及按某种时间表安排升级周期非常重要。您不想在升级中落后太多,发现自己陷入了过去。在将产品实施到您的环境中之前,请务必研究CVE并尽可能多地了解该产品。
结语
由于它的起源是MySQL的一个分支,很明显MariaDB和MySQL之间仍然存在许多相似之处。然而,如上所述,它们的分歧使它们成为今天的数据库。
当然,每个都有自己的优势和用例,因此选择一个而不是另一个最终归结为使您的业务需求与数据库的功能和优势保持一致。
归根结底,这两个数据库都可以成为企业使用的绝佳选择。