导读
MySQL 8.0.3即将发布,和叶师傅一起看看有什么新变化吧
我这几天有事在家工作,但肯定不会错过MySQL的big news。
这不,今晚出去遛娃时收到发送给ACE的邮件,预告MySQL 8.0.3即将发布,这是个RC版本,预示着8.0版本离GA是越来越近了,回来等娃娃睡着了赶紧整理分享出来。
借着ACE的“特权”,一起和大家分享下8.0.3版本的一些重要新特性、新变化吧。
- 直接废除query cache(简直是众望所归啊,叶师傅不知道呼吁过多少次了。我没记错的话,应该只是关闭入口,自行编译源码的话,还能再次启用);
- 查询优化器支持直接在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,而且还担心会影响别人);
- 查询优化器现在支持将各个列统计结果直方图存储在 column_statistics 数据字典中,以便构造执行计划。有了这个直方图,就可用于该列和常量的比较判断。
- 查询优化器中新增标记位 use_invisible_indexes,用于控制在构造执行计划时是否考虑不可见索引(invisible indexes)因素;
- InnoDB新增 备份专用锁,在以前InnoDB表在线热备时若同时进行DML可能导致InnoDB文件的快照不一致,有了这个备份锁就不用担心了。备份锁用法是 LOCK INSTANCE FOR BACKUP、UNLOCK INSTANCE,需要有 BACKUP_ADMIN 权限;
- InnoDB现在支持表DDL的原子性,也就是InnoDB表上的DDL也可以实现事务完整性了,要么失败回滚,要么成功提交,不至于出现DDL时部分成功的问题,此外还支持crash-safe特性(这个功能大赞啊);
- 若是延迟初始化组复制(GR,Group Replication),也就是在 single-primary 模式下,辅助节点上可以通过异步复制通道写入数据,这在正常初始化组复制插件时是不允许的(Bug #26314756,这是个内部BUG ID,我们看不到的,别费劲了。不过还有万能的github啊,也能看到相关描述,参见: https://github.com/mysql/mysql-server/commit/acbf1d13ecd1d89557f8ca62116f06e8633dc90d);
- 系统库INFORMATION_SCHEMA中的FILES、PARTITIONS、REFERENTIAL_CONSTRAINTS等几个视图被重新实现了一番(这个没说太具体,可能和所有的DDL都放入InnoDB有关系,不再使用FRM文件存储DDL信息);
- 由于外键约束锁功能改造,涉及到外键约束的父表上的列改名功能将暂时被禁用一段时间(估计过几个小版本就能正常用了);
- InnoDB通用表空间新增改名语法:ALTER TABLESPACE … RENAME TO(作为MySQL DBA,貌似没什么人玩通用表空间,可能从Oracle DBA转过来更习惯使用吧);
- MySQL复制的slave节点上,log_slave_updates选项默认值改为ON(这个也是比较实用,方便将该slave直接作为中继节点使用);
- 选项sql_log_bin的全局作用域被改成回话级作用域,也就是修改本选项只影响本会话,不再影响全局(这个选项一般也是在会话级使用);
- 选项max_allowed_packet的默认值从4M提高到64M(这个貌似比较实在);
- 选项event_scheduler的默认值由OFF改成ON,使得默认启用event scheduler功能(我觉得event功能挺好的呀,不过貌似没几个人使用event);
- 选项max_error_count的默认值从64提高到1024(没感觉的说);
- 最后一个,utf8mb4字符集增加毛子(俄语)的校验集(新增utf8mb4_ru_0900_ai_ci、utf8mb4_ru_0900_as_cs两种collations set),这关我们毛事啊,略过…
好了,先剧透到这里哈,一起期待8.0.3的发布吧 ✌️yeah!
原文来自:老叶茶馆
本文链接:http://www.yunweipai.com/22612.html
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/52973.html