MySQL8.0.3即将发布RC版本,这预示着8.0版本离GA越来越近了。分享一下8.0.3版本一些重要的新特性和变化:直接取消查询缓存(应该直接关闭入口,如果自己编译源码可以重新启用)查询优化器支持直接使用HINT语法SQL中SET_VAR的修改一些会话级的选项,如:-SELECT/*+SET_VAR(sort_buffer_size=16M)*/nameFROMpeopleORDERBYname;-INSERT/*+SET_VAR(foreign_key_checks=OFF)*/INTOt2VALUES(2);(这个功能超级实用,直接在SQL中修改即可,不用再写SQL,又担心影响别人)查询优化器现在支持存储每列统计结果的直方图在column_statistics数据字典中,从而构建和执行计划。有了这个直方图,就可以用来比较列和常量来判断查询优化器中的新标志use_invisible_indexes,用来控制在构造执行计划时是否考虑不可见索引(invisibleindexes)因素。InnoDB增加了备份专用锁以往如果在对InnoDB表进行在线热备份的同时进行DML,可能会导致InnoDB文件的快照不一致。有了这个备用锁,就不用担心了。备份锁的用法是LOCKINSTANCEFORBACKUP、UNLO??CKINSTANCE,需要BACKUP_ADMIN权限。InnoDB现在支持表DDL的原子性,即InnoDB表上的DDL也可以实现事务完整性。要么失败回滚,要么提交成功,不会出现DDL时部分成功的问题,还支持crash-safe特性(这个特性很棒)。如果组复制(GR,GroupReplication)的初始化延迟,即在单主模式下,从节点可以通过异步复制通道写入数据,这在组复制插件正常初始化期间是不允许的(Bug#26314756,这是一个内部BUGID,我们看不到它,不要打扰。不过也有***github,也可以看看相关的说明,见:https://github.com/mysql/mysql-server/commit/acbf1d13ecd1d89557f8ca62116f06e8633dc90d)FILES,PARTITIONS,REFERENTIAL_CONSTRAINTS在系统库INFORMATION_SCHEMA中的视图已经有了重新实现(这个不太具体,可能跟把所有的DDL都放到InnoDB中,不再使用FRM文件存储DDL信息有关)由于外键约束锁函数的改造,外键的parent涉及keyconstraint表上的column重命名功能会暂时关闭一段时间(估计几个小版本后可以正常使用)InnoDBgeneraltablespace有了新的重命名语法:ALTERTABLESPACE...RENAMETO(作为MySQLDBA,好像没有人玩过通用表,从OracleDBA可能更习惯使用)在MySQL复制的slave节点上,log_slave_updates选项的默认值为changedtoON(这个也比较实用,直接用slave做中继节点比较方便)sql_log_bin选项的全局作用域改为session级作用域,即修改这个选项只影响本次session,并且不再影响整个世界(这个选项一般用在session级别)选项max_allowed_pa??cket的默认值从4M增加到64M(这似乎更现实)选项event_scheduler的默认值从OFF更改为ON,让事件调度器功能默认开启(我觉得事件功能很好,但是好像很少人用event)选项max_error_count的默认值从64增加到1024(我没感觉it)***一、utf8mb4字符集新增俄语验证集(新增utf8mb4_ru_0900_ai_ci、utf8mb4_ru_0900_as_cs两个归类集)期待8.0.3一起发布!
