MariaDB是一个向后兼容、替代MySQL的数据库服务器。它包含所有主要的开源存储引擎。MariaDB源代码公开存放于Launchpad项目托管平台,同时也提供了二进制和编译包供下载。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。
MariaDB特点
MariaDB 是一个采用Maria存储引擎的MySQL分支版本,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器。
这个项目的更多的代码都改编于 MySQL 6.0,例如 “pool of threads”功能提供解决多数据连接问题。MariaDB 5.1.41 RC可以到这里下载,32位和64位已编译Linux版本,还包括源代码包。MariaDB基于GPL 2.0发布。
与 MySQL 相比较,MariaDB 更强的地方在于:
Maria存储引擎PBXT 存储引擎
XtraDB存储引擎
FederatedX存储引擎
更快的复制查询处理
线程池
更少的警告和bug
运行速度更快
更多的 Extensions (More index parts, new startup options etc)
更好的功能测试
数据表消除
慢查询日志的扩展统计
支持对 Unicode 的排序
相对于MySQL最新的版本5.6来说,在性能、功能、管理、NoSQL扩展方面,MariaDB包含了更丰富的特性。。比如微秒的支持、线程池、子查询优化、组提交、进度报告等。
MariaDB的兼容性
MariaDB是MySQL的二进制替代品
出于实用的目的,MariaDB是同一MySQL版本的二进制替代品(例如MySQL 5.1->MariaDB 5.1, MariaDB5.2和MariaDB 5.3是兼容的。MySQL 5.5将会和MariaDB 5.5保持兼容)。这意味着:
数据和表定义文件(.frm)文件是二进制兼容的。
所有客户端APIs,协议和结构都是相同的。所有的文件名、二进制文件的路径、端口、套接字等等……应该是相同的。所有MySQL的连接器(PHP Python Perl Java .NET MyODBC Ruby MySQL C连接器等) 和MariaDB的不变。有一些和PHP5的安装问题要注意(一个和老的PHP5如何检查库兼容性的bug)。
mysql-client包还可以与MariaDB服务器一起工作。
这意味着对于大多数情况下,您可以卸载MySQL和安装MariaDB,可以工作很好。(不需要转换成任何数据文件,如果使用同一主版本,比如5.1)。我们每月会与MySQL代码库合并来确保我们的兼容性和得到任何Oracle修正的bug和所有特性。
我们在脚本升级方面也做了大量的工作,现在从MySQL 5.0升级到MariaDB 5.1比从MySQL 5.0到MySQL 5.1更容易。
这就是说:MariaDB有许多的新选项、扩展,存储引擎和bug修复,而MySQL是没有的。您可以在MariaDB分发版本差异页面找到不同版本的功能特性集。可在MariaDB versus MySQL – Features看到。
MariaDB 5.5与MariaDB 5.3的不兼容性:
XtraDB
XtraDB提供者Percona,在5.5代码库并未提供XtraDB所有早些时候的功能特性。正因为如此,MariaDB 5.5也不能提供它们所有功能特性。
在5.5版本中XtraDB缺少的选项
以下选项XtraDB 5.5是不支持的。如果在my.cnf文件中使用到这些选项,请删除后再升级到5.5。
innodb-adaptive-checkpoint;请使用innodb_adaptive_flushing_method 替代。
innodb-auto-lru-dump;请使用innodb_buffer_pool_restore_at_startup 替代。
innodb-blocking-lru-restore;请使用innodb-blocking-buffer-pool-restore 替代。
innodb-enable-unsafe-group-commit
innodb-expand-import;请使用 innodb_import_table_from_xtrabackup 替代。
innodb-extra-rsegments;请使用innodb_rollback_segment 替代。
innodb-extra-undoslots
innodb-fast-recovery
innodb-flush-log-at-trx-commit-session
innodb-overwrite-relay-log-info
innodb-pass-corrupt-table;请使用innodb_corrupt_table_action 替代。
innodb-use-purge-thread
xtradb-enhancements
更新日志
MariaDB 10.3.13 更新内容
MDEV-17475: 表定义缓存 的最大值现在是 2097152.
Mariabackup 修复: MDEV-18185, MDEV-18201, MDEV-18194, MDEV-18415, MDEV-18611
InnoDB ALTER TABLE 修复: MDEV-17441, MDEV-18237, MDEV-17823, MDEV-18152, MDEV-17821, MDEV-18222, MDEV-18256, MDEV-18016, MDEV-18295
InnoDB 崩溃恢复修复: MDEV-18183, MDEV-18279, MDEV-18349
Galera 崩溃恢复修复: MDEV-15740
MDEV-18281: COM_RESET_CONNECTION 更改了连接编码
binlog 修复: MDEV-10963 & MDEV-10963
修复以下 安全漏洞:
CVE-2019-2510
CVE-2019-2537
MariaDB 10.3.2 更新内容
Notable Changes
Instant ADD COLUMN (MDEV-11369) - thanks to TenCent for the inspiration
UPDATE statements with the same source and target (MDEV-12874) - from Jerome Brauge
ORDER BY and LIMIT in multi-table update (MDEV-13911)
DATE_FORMAT(date, format, locale) - 3 argument form of DATE_FORMAT (MDEV-11553)
Compression
Storage-engine Independent Column Compression (MDEV-11371) - from TenCent
Encryption
Temporary files created by merge sort and row log are encrypted if innodb_encrypt_log is set to 1, regardless of whether the table encrypted or not (MDEV-12634).
Variables
Renamed idle_readwrite_transaction_timeout to idle_write_transaction_timeout.
The following deprecated variables have been removed:
innodb_mtflush_threads
innodb_use_mtflush
∨ 展开