MariaDB 10.1是一个总结
以下为MariaDB 10.1.8于2015年10月17日发布的总结。
同时附上了官方文档的链接以供参考。
如果您能提供不足的部分或补充,我将不胜感激。
安全
数据静止时加密
10.1.3和10.1.4版本可用的功能是数据加密功能。简而言之,它支持XtraDB/InnoDB和Aria存储引擎。加密范围包括单独的表和XtraDB/InnoDB的日志文件。解密所需的开销大约为3到5%。
密码验证
10.1.2版本中可用的功能。
您可以为用户的密码设置规定,例如“必须包含至少一个大写英文字母”。
通过安装插件,可以设置策略。目前支持的有以下两种类型。
-
- simple_password_check
- cracklib_password_check
从下一次设置开始,将应用设置的密码策略。
哈
加勒拉支持
从10.1.1版本开始,Galera被包含在内。
10.1版本的软件包可以作为独立的MariaDB,也可以作为Galera节点使用。
在进行源码构建时,需要将构建选项WITH_WSREP设置为ON。
顺序并行复制的乐观模式
从10.1.3版本开始,添加了并行复制的乐观模式。
在该模式下,当发生DDL之间改变相同行的冲突时,将乐观地解决冲突。
如果事务A和事务B发生冲突,后者的事务将被回滚,然后应用前者的事务。一旦更改被应用,然后再次应用后者的事务。
根据这个操作,将会发生事务的回滚,但基本上并行应用binlog的成本削减优势似乎比这个回滚带来的成本更大。
支持GTID
通过支持 GTID,现在可以将 MySQL5.6 或更高版本作为 slave,并启用 GTID 功能。这在混合使用 MySQL 和 MariaDB 或从 MySQL 迁移到 MariaDB 的情况下非常重要。
可扩展性 (kě
表演提升
MariaDB 10.1每秒可以执行100万个查询,根据情况,我希望能进行额外的基准测试。
磁盘碎片整理
通过设置innodb-defragment=1,可以在不创建新表的情况下使用OPTIMIZE TABLE来进行碎片整理。
信息架构
已经添加了两个用于wsrep(写集复制)的表,以及两个用于GIS(地理信息系统)的表。
-
- WSREP_MEMBERSHIP
-
- WSREP_STATUS
-
- GEOMETRY_COLUMNS
- SPATIAL_REF_SYS
另外,在以下的表格中增加了一列。
-
- APPLICABLE_ROLES(IS_DEFAULT)
- VIEWS(ALGORITHM)
地理信息系统 (dì lǐ xī xì
从10.1.2版本开始,地理信息相关的标准函数得到了增加。
-
- ST_BOUNDARY()
-
- ST_CONVEXHULL()
-
- ST_ISRING()
-
- ST_POINTONSURFACE()
- ST_RELATE()
句法
持续 IF [不存在/或替换] 支持
对于一些DDL,可以使用IF [NOT] EXISTS或者OR REPLACE选项。
-
- CREATE DATABASE
-
- CREATE EVENT
-
- CREATE FUNCTION UDF
-
- CREATE INDEX
-
- CREATE ROLE
-
- CREATE SERVER
-
- CREATE TRIGGER
-
- CREATE USER
-
- CREATE VIEW
-
- DROP EVENT
-
- DROP INDEX
-
- DROP ROLE
-
- DROP TRIGGER
- DROP USER
展示/刷新语法
据说现在可以在 information_schema 表上使用 SHOW/FLUSH 语句。
使用 SHOW 语句时,即使存在多个列,它也会根据经典的80×25大小进行省略。
分析/解释
ANALYZE和ANALYZE FORMAT=JSON会以和EXPLAIN相同的格式返回结果。
EXPLAIN FORMAT=JSON已根据MySQL5.6进行重新实现。
使用GET_LOCK函数来获取锁定,参数包括锁定字符串和超时时间。
现在可以通过GET_LOCK函数的第二个参数timeout来指定微秒。
优化器
按照顺序排列
据说ORDER BY的行为发生了变化。由于无法深入研究文档,所以无法给出太多解释。
请把下面的句子用中文进行本地化的改写,只需要一个选项:
frm
.frm文件将不再为临时表创建。
最大声明时间 (zuì dà
如果将 max_statement_time 设置为大于 1 的值,那么超过指定秒数的查询将自动被中止。
联合全部
据说在将来会将这项更改移植到MySQL 5.7,这样UNION ALL的执行就不再使用临时表了。
改变malloc()的执行时机
据说通过改变malloc()的执行时机,可以加快简单查询的执行速度。
应用 WebscaleSQL 的补丁。
听说有一些WebscaleSQL的补丁被应用了。
XtraDB/InnoDB 可以用以下方法来表达:
页面大小限制为64KB。
与MySQL5.7相同,可以对innodb_page_size指定为32k和64k。
其他
慢查询日志
当Slow Query Log(以及mysql.slow_log)中出现UPDATE/DELETE语句时,现在会显示更改的行数。
主键
被指定为主键且具有DEFAULT NULL的列将自动转换为NOT NULL DEFAULT 0。
安装
您可以通过软件包管理器进行安装。
您可以自动生成用于从官方安装的设置,建议您试试看。
这里给出一个配置示例。
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/rhel6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
$ yum install mariadb mariadb-server
请确认 baseurl 已经设置为 10.1。
有时候我们需要参考别人的意见来做决定。
-
- https://blog.mariadb.org/mariadb-10-1-is-stable-ga/
-
- https://blog.mariadb.org/10-1-mio-qps/
- https://mariadb.com/kb/en/mariadb/what-is-mariadb-101/