MariaDB 10.1主要新特性

1、10.1中默认包含Galera
2、可以对表、表空间、日志进行加密
需要安装file_key_management 插件
未安装加密插件的slave可以正确的复制加密的主
使用mysqlbinlog工具无法查看加密后的binlog

 

3、innodb/xtradb页压缩
区别于row_format=compressed,在缓存中会同时存在压缩页与非压缩页;新的页压缩功能只有在写入文件系统前进行压缩。
需要配置innodb-file-format=Barracuda 、 innodb-file-per-table=1
除zlib外,还支持lz4、lzo、lzma、bzip2、snappy压缩算法,但是默认版本不包含,需要先安装上述压缩算法后编译mariadb才能生效。
安装lzo后编译时能识别出该算法,但是编译报错。
但是实际测试page_compressed=1表数据文件并没有压缩,row_format=compressed可以正常压缩
4、复制:
基于domain_id复制过滤器
必须在MASTER_USE_GTID不为no的前提下使用,并且不能同时设置DO_DOMAIN_IDS 和 IGNORE_DOMAIN_IDS,只能选一个。例:

 

乐观模式并行复制
增强的半同步复制,收到备机响应后提交事务
新增rpl_semi_sync_master_wait_point配置项:可配置为AFTER_SYNC或AFTER_COMMIT。
row模式下slave上的trigger可以生效
新增slave_run_triggers_for_rbr配置项,使row模式下的slave可以触发slave上独有的trigger。
    增强dump线程,多个slave可以更快的并发读取binlog
在特定的并行场景下事务的commit立即完成,避免在很多事务锁冲突时降低吞吐量

 

RESET MASTER增加TO关键字
指定TO后,以指定的数字作为第一个binlog文件

 

    修复很多复制bug
5、增加默认角色
可以为用户指定默认角色:SET DEFAULT ROLE { role | NONE } [ FOR user@host ]
mysql.user表中增加default_role字段
6、优化
优化某些场景的ORDER BY
Always uses “range” and (not full “index” scan) when it switches to an index to satisfy ORDER BY … LIMIT
实际测试执行计划与mariadb10.0.12完全一致,不知道什么场景下会优化为range。
    临时表不再创建frm文件
MAX_STATEMENT_TIME可以用于中断超过该时长的长查询
可以设置全局、会话、用户的最长执行时间。可以中断任何语句(除存储过程)。MySQL5.7也有类似功能,只能中断SELECT语句。
还可以单独对语句进行设置:

 

UNION ALL不再使用临时表
10.1.12:

10.0.12:
    提高在POWER8上60%的吞吐量
    更少调用malloc(),使简单查询更快
自动发现performace schema表,performace schema表不再使用.frm文件
[rdb7@redhat64-26 ~]$ ls /home/rdb7/data/data/performance_schema/
db.opt
并且在系统初始化脚本中已无创建performance_schema的sql语句。
    改善xid缓存可伸缩性(通过使用 lock-free hash)
7、一些GIS特性
8、语法:
    全面支持IF EXISTS,IF NOT EXISTS,OR REPLACE
可以在存储过程之外使用混合语句
可以在存储过程外使用复合语句。
仅支持BEGIN, IF, CASE, LOOP, WHILE, REPEAT语法。且begin需要写为begin not atomic区别于原来用户开启事务的begin语法。
慢查询日志里会记录update或delete影响的行数
在慢查询日志中增加了Rows_affected项:
[rdb7@redhat64-26 data]$ mysqldumpslow redhat64-26-slow.log
Reading mysql slow query log from redhat64-26-slow.log
Count: 2  Time=0.09s (0s)  Lock=0.00s (0s)  Rows_sent=0.0 (0), Rows_examined=0.0 (0), Rows_affected=1.0 (2), root[root]@localhost
  insert into a select N,N
Count: 1  Time=0.09s (0s)  Lock=0.00s (0s)  Rows_sent=0.0 (0), Rows_examined=2.0 (2), Rows_affected=2.0 (2), root[root]@localhost
  delete from a
9、innodb/xtradb:
    支持最大64K页
    合入Facebook/Kakao碎片整理patch,可以使用optimize table对innodb表空间碎片整理
    可以设置innodb表必须包含主键
10、修改部分参数变量
11、增加了几个密码插件
12、修复一些安全问题