1.临时表的改进 2.持续的全局变量 3.取消默认的MyISAM系统表 4.UNDO空间回收 5.UTF8性能改进 6.取消Query Cache 7.原子DDL 8.更快、性能更好额Schema和information Scheam 9.角色管理 10.加密表空间中的REDO日志和UNDO日志

临时表改进 在mysql5.7中,所有的临时表都被创建在一个叫“ibtmp1”的表空间中,另外,临时表的元数据也将存储在内存中(不再存储在frm文件中) 在mysql8.0中,使用临时表存储引擎作为临时表(为优化join,union等操作而创建的)存储的默认引擎,从而其换掉了原有的内存存储引擎 新的引擎使得VARCHAR和VARBINARY列的存储更为高效(所有存储空间得到完全分配)。

持续的全局变量 mysql8.0现在可以设置变量并使其改变持续到服务器重新启动 使用此语法结合新的RESTART命令,可以非常容易的从shell中配置MySQL,这对云计算用户是一个十分友好的功能

取消默认MyISAM系统表 由于采用了新的本地数据字典,现在我们不再需要MyISAM系统表了 这些表和数据字典表现在都在一个mysql.idb的innodb的表空间文件中 这意味只如果你没有明确的使用MyISAM表(为了你的数据,不建议这么去做)你可以创建一个没有任何MyISAM表的mysql实例

UNDO空间回收 在mysql5.7中,我们已经可以截断UNDO空间了(设置innodb_undo_log_truncate,默认情况下禁用)。 在mysql8.0中,我们改进了磁盘格式来使得每个UNDO表有大量的UNDO段 此外,现在默认为两个单独的UNDO表空间(而非INNODB系统表空间(最小值为2,大小动态变化))中创建UNDO段

我们不推荐使用Innodb_undo_tablespaces来设置该值,因为我们将提供SQL命令让数据库管理员于UNDO表空间进行交互

自动截断UNDO表空间默认启用

UTF8性能改进 由于默认的字符集已经从