MySQL 8.0.16 稳定版发布

局长
 局长
发布于 2019年05月20日
收藏 22

MySQL 8.0.16 稳定版(GA)已于上个月发布,距推出 8.0.15 仅过去了两个月。

下载地址

Windows (x86, 32-bit), MSI Installer 8.0.16 (mysql-installer-web-community-8.0.16.0.msi) 20.0M
Windows (x86, 32-bit), MSI Installer 8.0.16 (mysql-installer-community-8.0.16.0.msi) 373.4M
Windows (x86, 64-bit), ZIP Archive (mysql-8.0.16-winx64.zip) 228.9M

继续看看 MySQL 8.0.16 有哪些新特性。

账号管理

  1. 具有 DROP ROLE 权限的用户只能删除被锁定的账户,而不能删除未锁定的账号。
  2. 引入 System users 概念。具有 SYSTEM_USER 权限的用户,区别于普通用户(没有 SYSTEM_USER 权限的用户)。普通用户只能维护普通用户的账号,不能维护 System users 的账号。
  3. 之前的版本中,赋权限的时候没有方法排除指定的 schema 的访问权限,比如赋予用户除了 mysql 之外的所有数据库的访问权限。新版本中可以通过开启参数 partial_revokes。来实现上述功能。
    SET PERSIST partial_revokes = ON;
    GRANT SELECT, INSERT ON . TO u1;
    REVOKE SELECT, INSERT ON mysql.* FROM u1;

字符集

  • 支持中文字符校验字符集 utf8mb4_zh_0900_as_cs

移除的功能特性

  • 在新版本中,临时表的存储引擎默认使用 innodb,故 internal_tmp_disk_storage_engine 已经被移除。

功能改进和修改

explain 增加 FORMAT=TREE 的选项。帮助我们理解 sql 执行计划的执行过程。

  {EXPLAIN | DESCRIBE | DESC}
    tbl_name [col_name | wild]
  {EXPLAIN | DESCRIBE | DESC}
    [explain_type]
    {explainable_stmt | FOR CONNECTION connection_id}
   explain_type: {
    FORMAT = TRADITIONAL| JSON| TREE
   }
   explainable_stmt: {
    SELECT statement
  | DELETE statement
  | INSERT statement
  | REPLACE statement
  | UPDATE statement
  }

增加一个 api 内部调用的接口用于监控脏页的变化

MySQL 将执行以下场景的 where 条件做对比的步骤从执行阶段提前到优化阶段。

1.当常量和某个字段作比较,且常量的值大于该字段类型的最大值,比如 a 是 tinyint ,

select * from t where a<256

会被直接转换为

select * from t where ture;

2.和 null 作比较也被优化。如果 a 字段是可以为 null 的, SELECT * FROM t WHERE a IS NOT NULL.

目前还不支持 between 和 and。

MGR 增加参数 group_replication_autorejoin_tries 控制节点加入集群的次数,超过指定次数则加入失败。默认值为0,也就是说 MRG 成员不主动尝试加入集群。 对于网络不太稳定的基础环境,启用该参数可以减少人肉运维操作,提高'幸福感'。

之前的版本中,MGR 成员相互传递大量信息可能会导致部分节点接收失败并且从集群中移除。因为接受大量消息会导致接收消息的线程被 group communication engine (XCom, a Paxos variant) 占用很长时间,其他节点会认为该节点无法响应。8.0.16 版本通过参数 group_replication_communication_max_message_size 支持将超过指定大小消息拆分为多组消息。

编译须知

MySQL 8.0 对编译的工具有比较新的版本需求,比如要求

  • GCC 5.3 版本
  • 在 EL6  and  EL7 使用 devtoolset- 8 而非 devtoolset- 7
  • Boost  library 最低版本是 1.69 . 0

来自:yangyidba微信公众号

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:MySQL 8.0.16 稳定版发布
加载中

精彩评论

沧海_Sea
沧海_Sea

引用来自“北极心”的评论

什么时候支持递归查询
什么时候支持dblink
现在都恨不得一个join都不用 你说dblink
北极心
北极心
什么时候支持递归查询
什么时候支持dblink

最新评论(15

沧海_Sea
沧海_Sea

引用来自“北极心”的评论

什么时候支持递归查询
什么时候支持dblink
现在都恨不得一个join都不用 你说dblink
水溶C100
水溶C100
之前就因为mysql没有递归查询,后来在设计表结构的时候,添加一个字段ParentTree 存放该节点所有上级ID都存起来,再加一个级别字段Level,完美搞定。
千面书生鬼见愁
目前还不支持 between 和 and
mymbrooks
mymbrooks

引用来自“北极心”的评论

什么时候支持递归查询
什么时候支持dblink
MySQL 8.0 已支持 CTE 、窗口函数,可以很方便的实现递归
墨子Zhai
墨子Zhai

引用来自“墨子Zhai”的评论

在不想购买mysql商业授权的情况下, 可以选择的只有mariadb , percona from mysql.

引用来自“mymbrooks”的评论

公司多大的业务 MySQL CE 都不够你用的?
是的。
z
zhjh256

引用来自“北极心”的评论

什么时候支持递归查询
什么时候支持dblink
cte可以实现递归,参考:https://www.cnblogs.com/zhjh256/p/10901293.html
z
zhjh256

引用来自“北极心”的评论

什么时候支持递归查询
什么时候支持dblink
FEDERATED引擎不就是dblink
小杨阿哥哥
小杨阿哥哥

引用来自“为嘛先生”的评论

和 null 作比较也被优化。如果 a 字段是可以为 null 的, SELECT * FROM t WHERE a IS NOT NULL 我怎么没看懂
不能为null的就省了判断 is null了,是这个意思吗?
Beyonds
Beyonds

引用来自“北极心”的评论

什么时候支持递归查询
什么时候支持dblink
dblink这不是oracle的功能么
北极心
北极心
什么时候支持递归查询
什么时候支持dblink
返回顶部
顶部