MariaDB 与 MySQL的区别

主要区别介绍

特征 MariaDB MySQL
发行版 MariaDB 是 MySQL 的一个分支 MySQL 是 Oracle 公司的产品
开发公司 MariaDB 由 MariaDB 基金会和社区维护 MySQL 由 Oracle 公司维护
开发重点 功能改进和增强 性能和可靠性
存储引擎 包含额外的存储引擎,如Aria、XtraDB、TokuDB等 包含MyISAM、InnoDB等存储引擎
版本命名 MariaDB 使用年份和版本号作为版本命名,例如 MariaDB 10.3.8 MySQL 使用主版本号、次版本号和修订版本号作为版本命名,例如 MySQL 8.0.22
许可证 使用GNU通用公共许可证 (GPL) MySQL使用两种许可证:开源的GNU GPL许可证或商业许可证
兼容性 与 MySQL 具有很高的兼容性 MariaDB 比 MySQL 更加兼容
语言支持 支持更多的编程语言,如C++、Perl、Python、Java等 支持主流编程语言,如C++、Java、Perl、Python等
安全性 提供更好的安全性,如支持加密、安全的默认设置等 MySQL 也提供良好的安全性,但默认配置较为宽松
性能优化 提供更多的性能优化选项,如查询优化、多线程处理等 MySQL 也提供丰富的性能优化选项
社区支持 具有活跃的社区支持 MySQL 的社区支持同样非常活跃

需要注意的是,尽管 MariaDB 和 MySQL 存在许多区别,它们在大多数情况下都可以互换使用,因为它们具有相同的 SQL 语法和功能。

两者不兼容的功能

  1. 存储引擎:MariaDB包含一些MySQL没有的存储引擎,例如Aria、ColumnStore和MyRocks。这些存储引擎可能不兼容MySQL的存储引擎。

  2. 数据类型:MariaDB包含一些MySQL没有的数据类型,例如XML和UUID。如果应用程序依赖这些数据类型,就需要考虑它们是否在MySQL中可用。

  3. 函数和操作符:MariaDB包含一些MySQL没有的函数和操作符,例如PCRE正则表达式和BIT_XOR函数。如果应用程序使用这些函数和操作符,就需要考虑它们是否在MySQL中可用。

  4. 系统变量和选项:MariaDB包含一些MySQL没有的系统变量和选项,例如max_statement_time和innodb_adaptive_flushing。如果应用程序依赖这些变量和选项,就需要考虑它们是否在MySQL中可用。

需要注意的是,尽管存在这些不兼容的特性和功能,MariaDB仍然努力保持与MySQL的兼容性,并提供了许多兼容性层以确保应用程序可以平稳地从MySQL迁移到MariaDB。

针对InnoDB引擎,MariaDB 与 MySQL 有哪些不同?

特征 MariaDB MySQL
默认引擎 InnoDB InnoDB
压缩 InnoDB支持页级别压缩,压缩率较高 InnoDB支持行级别压缩,压缩率较低
缓存 MariaDB具有更好的缓存机制,可以根据需要自动调整缓存大小 MySQL的缓存机制相对较简单
全文搜索 MariaDB支持全文搜索索引,使用的是InnoDB引擎 MySQL支持全文搜索索引,但不支持在InnoDB引擎上使用
分区 MariaDB支持更多种类的分区策略,例如按月、按天和按键值 MySQL支持的分区策略相对较少
备份 MariaDB支持更多种类的备份,包括热备份和增量备份 MySQL备份相对较为简单
性能 MariaDB在某些情况下具有更好的性能,例如使用多个线程进行查询 MySQL在某些情况下性能可能更好,例如在某些类型的查询上
本作品采用《CC 协议》,转载必须注明作者和本文链接
学过的东西能说出来那是最妙的,能复盘写下来那也不错
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

mysql 5.7 之后就支持 json 了...

file

1年前 评论
徵羽宫 (作者) 1年前
xuanziDy (楼主) 11个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!