加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

连跳7个版本之后,MySQL 8.0.12有什么新特性?

发布时间:2018-09-03 19:27:46 所属栏目:编程 来源:高可用架构
导读:9月15日技术沙龙 | 如何将智能化和运维工作相结合,实现智能运维! 引言 时隔三个月,MySQL 8.0.12 有什么新内容? 今年4月份,MySQL突然直接从8.0.5跳过多个版本号到8.0.11,直接宣布8.0.11 GA,告诉大家说,这个版本已经可以到线上用了。 到今年7月底,My

  1.添加新列。已知限制条件如下:

  • 不能与其他不支持INSTANT算法的alter子语句合并在一起。
  • 只能添加在表列的末尾。
  • 不能用于innodb的压缩表(ROW_FORMAT=COMPRESSED)。
  • 目标表不能包含全文索引。
  • 目标表不能是临时表。
  • 目标表不能是数据字典表。
  • 这种添加方式下,不会计算行长度是否合适,这个计算会在发生insert或者update的时候处理。

  2. 添加或者删除虚拟列。

  3. 添加或者去掉列的默认值。

  4. 修改 enum,set 列类型的定义(题外话,有多少人知道并在用这个?)

  5. 修改索引类型。

  6. 重命名表名称。

binlog支持管道输入 

对于大个头 binlog 的处理,由于 MySQL mysqlbinlog 程序之前是不支持管道的,只能先解压,之后再处理。从 8.0.12 开始,mysqlbinlog支持管道输入了,简单来说,就是下面这么一回事:

  1. gzip -cd binlog-files_1.gz | ./mysqlbinlog - | ./mysql -uroot -p  

当一条drop 语句里面包含了关联的父子表,则会直接删除,不在额外要求父子表顺序正确 

如题,对于每次删表都需要关闭外键检查的人来说,无疑是个好消息。

MySQL 外键关联删表:

8.0,版本中,普通情况下,删除父表:

连跳7个版本之后,MySQL 8.0.12有什么新特性?

报错 3730

在更早的版本(5.7)中:

连跳7个版本之后,MySQL 8.0.12有什么新特性?

可以看出错误信息,在 8.0 开始更加详细了。

如果执行 drop table father,child:

连跳7个版本之后,MySQL 8.0.12有什么新特性?

必须写成:

连跳7个版本之后,MySQL 8.0.12有什么新特性?

但是,在 8.0.12 开始:

连跳7个版本之后,MySQL 8.0.12有什么新特性?

ADMIN成为关键字 

以后 SQL 字段又少了一个常用的词哎=_=。

是谁关闭了数据库? 

MySQL 终于会在日志里面记录,是谁发的 shutdown 命令了。

MySQL 关闭数据库:

连跳7个版本之后,MySQL 8.0.12有什么新特性?

那些或许很好玩的bug 

下面是从 bugfix 记录中,找的一些好玩被修复的内容,注意——由于每个人笑点不同,如果只关注新特性修改的话,下面的内容不看就不看了。

  1. 早前宣布的新事务模型 VATS,由于其需要追踪所有等待其他事务的事务数量,为了避免死锁,目前被修改为生成出来的近似值。
  2. gtid_purge(记录那些gtid事务已经被purge掉)的值,在Group Replication 运行期间,应该是不能被修改的,然而现在发现它是可以修改的,因此改为在 group replication 运行时候不能修改。
  3. 当 expire_logs_days 与 binlog_expire_logs_seconds 参数都设置的情况下,如果设置了 skip-log-bin ,现在开始这个信息会被写入错误日志。
  4. 当有超大事务执行(binlog 量超过 binlog_cache_size)的时候,在刷出到临时文件期间,如果遇到磁盘满导致的刷出失败,事务回滚,这个信息没有被记录在错误日志里面,并且,事务回滚后,缓存也不会被清空。
  5. SUPER 权限的用户,没办法修改 keyring_operations 参数。
  6. It was possible to drop the Performance Schema. 哈哈哈哈哈。
  7. slave_rows_search_algorithms 指定了 row 格式复制时候,行匹配的的方式,指定为 INDEX_SCAN 的话,如果表上有索引,则会使用索引操作。但如果主从库的同一张表,使用了不同的列作为主键,并且从库表上还有唯一索引的情况下,bug 会导致使用 table scan(全表扫描)而非索引。
  8. 对于 MyISAM 来说,特定的 insert 与 delete 语句顺序,会导致表数据损坏。 

【编辑推荐】

  1. 阿里P8架构师谈:数据库中间件的功能、适用场景、淘宝TDDL详解
  2. 数据库界的《延禧攻略》来了,不看你就输了
  3. Innodb中MySQL如何快速删除2T的大表
  4. 为什么你的MySQL性能差?死代码牵连问题解决了吗?
  5. 传统DBA将死?饿了么数据库自动化运维实践
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读