为什么MariaDB更优于MySQL

https://cloud.tencent.com/developer/article/1140522

 

MariaDB的特点

  • MariaDB可用于GPL,LGPL和BSD。
  • 它包括广泛的存储引擎选择,包括高性能存储引擎,用于与其他关系数据库管理系统(RDBMS)数据源一起工作。
  • 它使用标准和流行的查询语言。
  • MariaDB在许多操作系统上运行,并支持各种编程语言。
  • 它提供对PHP的支持,PHP是最流行的Web开发语言之一。
  • 它提供Galera群集技术。
  • MariaDB还提供了很多在MySQL中不可用的操作和命令,并消除/取代了对性能产生负面影响的功能。

其他功能还包括多源复制,融合IO优化,表发现和联机更改表。

MariaDB和MySQL的比较分析

MariaDB拥有大量新功能,这使得它在性能和用户导向方面更加出色。让我们来评估MariaDB和MySQL,以确定哪一个更好。这种选择最终将取决于IT经理以及他们对开源数据库的熟悉程度。

MySQL和MariaDB之间的一些重要差异

1. 数据库的使用情况:自1995年以来,MySQL一直被视为迄今为止实施最为广泛且最广泛使用的开源数据库。许多像Twitter,YouTube,Netflix和PayPal这样的IT巨头,以及美国国家航空航天局,美国国防部队和沃尔玛都利用这个数据库。

最近才到来的MariaDB也在各种IT巨头组织(如Google,Red Hat,CentOS和Fedora)中作为后端软件因此得到了强大的基础。

2. 数据库和索引的结构: MySQL是一个纯粹的关系数据库,集成了一个ANSI标准的信息模式,由表,列,视图,过程,触发器,游标等组成。MySQL的结构化查询语言(SQL)是ANSI SQL 99。

而MariaDB是MySQL的一个分支,因此具有相同的数据库结构和索引。该功能使MariaDB成为希望直接切换或升级后端的用户的理想选择,而无需升级数据库和数据结构。

当从MySQL升级到MariaDB时,所有内容(从数据,表格定义,结构和API)都保持一致。

3. 二进制和实现: MySQL是使用C和C ++开发的,并且完全兼容几乎所有操作系统,如Microsoft Windows,MAC OS X,Linux,FreeBSD,UNIX,NetBSD,Novell Netware和其他许多操作系统。

MariaDB使用C,C ++,Bash和Perl开发。它与Microsoft Windows,Linux,MAC OS X,FreeBSD,Solaris等各种操作系统兼容。

4. 复制和集群: MySQL通过主从主复制和主从复制提供强大的复制和集群,并利用Galera集群实现多主集群。

MariaDB为主终端用户提供与主从主复制和主从复制相同的复制和集群功能。它还使用10.1版以后的Galera Cluster。

5. 对数据库的支持:通过Oracle全天候提供MySQL技术支持服务,支持团队由专业开发人员和工程师组成,他们提供各种工具,如错误修复,修补程序和版本发布。Oracle根据用户的需求提供MySQL首要支持,扩展支持和持续支持。

MariaDB通过开源社区,在线论坛甚至通过专家为用户提供强有力的支持。MariaDB通过企业订阅提供24小时全天候支持,尤其适用于任务关键型生产系统。

6. 安全性:就安全性而言,MySQL为表空间数据提供了强大的加密机制。它提供了强大的安全参数,包括选择好的密码,不给用户不必要的特权,并通过防止SQL注入和数据损坏来确保应用程序安全。

MariaDB在内部安全和密码检查,验证模块(PAM)和轻量级目录访问协议(LDAP)认证,Kerberos,用户角色以及对表空间,表格和日志的强大加密等安全功能方面取得了重大进展。

7. 可扩展性:支持可扩展系统的数据库可以用许多不同的方式进行扩展,如添加新的数据类型,函数,运算符,聚集函数,索引方法和过程语言。MySQL不支持可扩展性。

MariaDB建立在现代架构的基础之上,可以在每一层 -- 客户端,集群,内核和存储上进行扩展。这种可扩展性提供了两个主要优势。它允许通过插件实现持续的社区创新,这意味着可以通过MariaDB的可扩展架构集成各种存储引擎,如MariaDB ColumnStore或Facebook的MyRocks。此外,它使客户能够轻松配置MariaDB以支持从联机事务处理(OLTP)到联机分析处理(OLAP)的各种用例。

8. JSON支持: MySQL支持本地JSON数据类型,可以在JSON(JavaScript Object Notation)文档中高效地访问数据。与将JSON格式的字符串存储在字符串列中相比,JSON数据类型提供了以下优点:

  • 自动验证存储在JSON列中的JSON文档。无效的文档会产生错误。
  • 优化的存储格式:存储在JSON列中的JSON文档被转换为允许快速读取文档元素的内部格式。当服务器稍后必须读取以这种二进制格式存储的JSON值时,不需要从文本表示中解析该值。二进制格式的结构使服务器能够直接通过键或数组索引查找子对象或嵌套值,而无需读取文档中的所有值。

另一方面,MariaDB Server 10.2引入了一整套用于读写JSON文档的24个函数。另外,JSON_VALID函数可以与校验约束一起使用,而像JSON_VALUE这样的函数可以与动态列一起使用来索引特定的字段。

9. 授权许可: MySQL在GPL下以开放源代码提供代码,并以MySQL Enterprise形式提供非GPL商业分发选项。

MariaDB只能使用GPL,因为它的工作源于该许可条款下的MySQL源代码。

10. 性能: MariaDB通过MySQL的许多创新实现了同类最佳性能。其中包括线程池管理以最大限度地提高处理效率,以及InnoDB数据存储区内的碎片整理等广泛的优化功能。因此,当从InnoDB表中删除行时,可用空间立即可供操作系统使用。不需要将旧表中的数据复制到新表中,并且表空间中没有空闲。MariaDB还提供与引擎无关的表统计信息,以改善优化程序的性能,加快对表的大小和结构进行查询处理和数据分析。

如果没有这些增强功能,MySQL的性能就会下降。MySQL中的线程利用率是次优的,InnoDB表随着时间的推移变得碎片化,从而影响性能。

MariaDB与MySQL

以下几点突出了MariaDB的优缺点。

优点

  • MariaDB针对性能进行了优化,对于大型数据集,它比MySQL强大得多。从其他数据库系统可以优雅的迁移到MariaDB是另一个好处。
  • 从MySQL切换到MariaDB相对容易,这对于系统管理员来说好像是一块蛋糕。
  • MariaDB通过引入微秒级精度和扩展用户统计数据提供更好的监控。
  • MariaDB增强了KILL命令,使您可以杀死用户的所有查询(KILL USER 用户名)或杀死查询ID(KILL QUERY ID query_id)。MariaDB也转而使用Perl兼容的正则表达式(PCRE),它提供比标准MySQL正则表达式支持更强大和更精确的查询。
  • MariaDB为与磁盘访问,连接操作,子查询,派生表和视图,执行控制甚至解释语句相关的查询应用了许多查询优化。
  • MariaDB纯粹是开源的,而不是MySQL使用的双重授权模式。一些仅适用于MySQL Enterprise客户的插件在MariaDB中具有等效的开源实现。
  • 与MySQL相比,MariaDB支持更多的引擎(SphinxSE,Aria,FederatedX,TokuDB,Spider,ScaleDB等)。
  • MariaDB提供了一个用于商业用途的集群数据库,它也支持多主复制。任何人都可以自由使用它,并且不需要依赖MySQL Enterprise系统。

缺点

  • 从版本5.5.36开始,MariaDB无法迁移回MySQL。
  • 对于MariaDB的新版本,相应的库(用于Debian)不会及时部署,由于依赖关系,这将导致必需升级到较新的版本。
  • MariaDB的群集版本不是很稳定。

迁移到MariaDB的主要原因

  • 首先,MariaDB提供了更多更好的存储引擎。NoSQL支持由Cassandra提供,允许您在单个数据库系统中运行SQL和NoSQL。MariaDB还支持TokuDB,它可以处理大型组织和企业用户的大数据。
  • MySQL的平常(和缓慢的)数据库引擎MyISAM和InnoDB已分别在MariaDB中由Aria和XtraDB取代。Aria提供了更好的缓存,这对于磁盘密集型操作来说是有所不同的。
  • MariaDB通过引入微秒级精度和扩展用户统计数据提供更好的监控。
  • MariaDB的最新功能(如GIS,动态色谱柱支持等)使其成为更好的选择。
  • MariaDB遵循良好的行业标准,同时发布安全公告和升级,并以正确的方式处理预发布的保密性和发布后的透明度。

本文的版权归 无邪 所有,如需转载请联系作者。

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值