MySQL8.0.3 RC版即将发布 先来看看有哪些变化
mysql 8.0.3 即将发布,一起看看有什么新变化吧
mysql 8.0.3 即将发布 rc 版本,这预示着 8.0 版本离 ga 越来越近了。
下面分享一下 8.0.3 版本的一些重要新特性、新变化:
1.直接废除 query cache(应该只是关闭入口,自行编译源码的话,还能再次启用)
2.查询优化器支持直接在 sql 中利用 set_var 这个 hint 语法修改某些会话级的选项,比如:
- select /*+ set_var (sort_buffer_size = 16m) */ name from people order by name;
- insert /*+ set_var (foreign_key_checks=off) */ into t2 values (2);
(这个功能超级实用啊,直接在 sql 内可以修改了,都不用再写一个 sql,而且还担心会影响别人)
3.查询优化器现在支持将各个列统计结果直方图存储在 column_statistics 数据字典中,以便构造执行计划。有了这个直方图,就可用于该列和常量的比较判断
4.查询优化器中新增标记位 use_invisible_indexes,用于控制在构造执行计划时是否考虑不可见索引(invisible indexes)因素
5.innodb 新增备份专用锁,以前 innodb 表在线热备时若同时进行 dml 可能导致 innodb 文件的快照不一致,有了这个备份锁就不用担心了。备份锁用法是 lock instance for backup、unlock instance,需要有 backup_admin 权限
6.innodb 现在支持表 ddl 的原子性,也就是 innodb 表上的 ddl 也可以实现事务完整性了,要么失败回滚,要么成功提交,不至于出现 ddl 时部分成功的问题,此外还支持 crash-safe 特性(这个功能大赞啊)
7.若是延迟初始化组复制(gr,group replication),也就是在 single-primary 模式下,辅助节点上可以通过异步复制通道写入数据,这在正常初始化组复制插件时是不允许的(bug #26314756,这是个内部 bug id,我们看不到的,别费劲了。不过还有万能的 github 啊,也能看到相关描述,参见:)
8.系统库 information_schema 中的 files、partitions、referential_constraints 等几个视图被重新实现了一番(这个没说太具体,可能和所有的 ddl 都放入 innodb 有关系,不再使用 frm 文件存储 ddl 信息)
9.由于外键约束锁功能改造,涉及到外键约束的父表上的列改名功能将暂时被禁用一段时间(估计过几个小版本就能正常用了)
10.innodb 通用表空间新增改名语法:alter tablespace ... rename to(作为 mysql dba,貌似没什么人玩通用表空间,可能从 oracle dba 转过来更习惯使用吧)
11.mysql 复制的 slave 节点上,log_slave_updates 选项默认值改为 on(这个也是比较实用,方便将该 slave 直接作为中继节点使用)
12.选项 sql_log_bin 的全局作用域被改成回话级作用域,也就是修改本选项只影响本会话,不再影响全局(这个选项一般也是在会话级使用)
13.选项 max_allowed_packet 的默认值从 4m 提高到 64m(这个貌似比较实在)
14.选项 event_scheduler 的默认值由 off 改成 on,使得默认启用 event scheduler 功能(我觉得 event 功能挺好的呀,不过貌似没几个人使用 event)
15.选项 max_error_count 的默认值从 64 提高到 1024(没感觉的说)
16.最后一个,utf8mb4 字符集增加俄语的校验集(新增 utf8mb4_ru_0900_ai_ci、utf8mb4_ru_0900_as_cs 两种 collations set)
一起期待 8.0.3 的发布吧!