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/
广告
将在 10 秒后关闭
bannerAds