MariaDB与MySQL哪个更好?MySQL 是世界上使用最广泛的数据库之一。它是免费的,也是开源的。MySQL 是用 C/C++ 开发的,是最受欢迎的数据库选择之一。
该数据库由瑞典公司“MySQL AB”于1995年创立。MySQL AB后来于2008年被Sun Microsystems收购。后来Sun Microsystems于2010年被Oracle收购,此后MySQL由Oracle维护和管理。
在Oracle收购Sun Microsystems的过程中,一些从事MySQL开发的高级工程师觉得MySQL和Oracle的商业数据库——Oracle Database Server存在利益冲突。结果,这些工程师创建了 MySQL 代码库的分支并开始了自己的组织。MariaDB 就是这样诞生的。
截至今天,这两个数据库都非常流行,并被开发人员社区广泛使用。MySQL 在关系数据库中排名第二,整体排名第二(第一是 Oracle 数据库)。相反,MariaDB 稍微落后 - 在关系数据库中排名第 9,总体排名第 14。
MariaDB与MySQL有什么区别
在这篇博文中,我们将尝试比较这两个数据库的一些功能,看看哪一个最适合使用。
MariaDB 与 MySQL 性能比较
与 MySQL 相比,MariaDB 有几项优化可以提高性能。事实上,这正是 MySQL 和 MariaDB 的最初创始人 Michael Widenius 创立 MariaDB 时的愿景。
数据库视图
例如,在数据库“视图”方面有一个巨大的性能优化。“视图”本质上是虚拟数据库表,可以像数据库的常规表一样进行查询。在 MySQL 中,当你查询视图时,会查询所有连接到该视图的表,而不管该查询可能不需要某些视图这一事实。这已在 MariaDB 中进行了优化,其中仅查询查询所需的那些表。
列存储
MariaDB与MySQL差异比较:作为另一个例子,MariaDB 以“ColumnStore”的形式提供了另一个强大的性能改进,这是一种分布式数据架构,可以极大地扩展 MariaDB。它可以线性扩展以跨数据库集群中的各种服务器存储 PB 级数据。
更好的闪存性能
MariaDB与MySQL哪个更好?MariaDB 还提供 MyRocks 存储引擎,将 RocksDB 数据库添加到其中。RocksDB 是一种数据库,旨在通过提供更高级别的数据压缩来提高闪存存储的性能。
分段密钥缓存
MariaDB 以分段密钥缓存的形式引入了另一项性能改进。在典型的缓存中,不同的线程竞争以锁定缓存条目。这些锁称为互斥锁。当多个线程竞争一个互斥锁时,只有一个线程能够获得它,而其他线程在执行操作之前必须等待锁被释放。这会导致这些线程中的执行延迟降低数据库性能。在 Segmented Key Cache 的情况下,线程不需要锁定整个页面,但它可以只锁定页面所属的特定段。这有助于多个线程并行工作,从而增加应用程序中的并行度,从而提高数据库的性能。
虚拟列
MariaDB与MySQL有什么区别?MariaDB 支持的一个有趣功能是虚拟列。这些列能够在数据库级别执行计算。当许多应用程序访问同一列时,这非常有用,因此无需在每个应用程序中编写计算 - 数据库可以为你完成。此功能在 MySQL 中不可用。
并行执行查询
MariaDB 的最新版本之一 - 10.0 允许并行执行多个查询。这个想法是来自 Master 的一些查询可以在 slave 中复制,因此可以并行执行。查询执行中的这种并行性无疑为 MariaDB 提供了优于 MySQL 的优势。
线程池
MariaDB 还引入了一个名为“线程池”的新概念。以前,当需要与数据库的多个连接时,对于每个连接,都会打开一个线程,从而形成基于“每个连接一个线程”的架构。使用“线程池”,将有一个开放线程池,新连接可以获取并查询数据库。这样,不需要为每个新的连接请求打开一个新线程,从而获得更快的查询结果。该功能在 MySQL 的企业版中可用,但遗憾的是在社区版中不可用。
存储引擎
MariaDB与MySQL差异比较:MariaDB 提供了几个强大的开箱即用的存储引擎,这些引擎在 MySQL 中不可用。例如XtraDB、Aria等,要为MySQL设置这些存储引擎,需要手动安装,这可能不是最方便的事情。
兼容性
MariaDB 团队正在确保 MariaDB 可以无缝替换现有应用程序中的 MySQL。事实上,对于每个版本的 MySQL,他们都发布了相同的 MariaDB 版本号,以表明 MariaDB 普遍兼容对应的 MySQL 版本。这开辟了无缝切换到 MariaDB 的可能性,而无需对应用程序代码库进行任何修改。
开源与专有数据库
MariaDB与MySQL有什么区别?MySQL 是一个大型项目,由世界上最大的组织之一——甲骨文管理。这有其优点和缺点。最大的缺点之一是在大型组织中发布新功能需要大量时间。另一方面,MariaDB 是完全开源的,它们在接受外部贡献和作为新功能和增强功能发布方面非常快。这是在决定 MySQL 和 MariaDB 时必须牢记的另一点。
结论
MariaDB与MySQL哪个更好?MariaDB 无疑非常强大,并提供了许多非常有用但 MySQL 不支持的功能。这些功能确实使 MariaDB 成为用作主要后端数据库的有利可图的选择。一般来说,已经购买了 Oracle 许可证的组织不需要投资 MariaDB。但是,对于那些重新开始并想决定使用哪个数据库的人来说,MariaDB无疑是一个更好的选择。