MySQL 8.0的十大新特性

时间:2022-10-16 13:48:44

今天,让我们看一下MySQL8.0提升数据库管理员工作效率的十大改进。

从一大堆特性你们找出十点并不太容易,以下是这十大特性:

1.临时表的改进

2.持续的全局变量

3.取消默认MyISAM系统表

4.UNDO空间回收

5.UTF8性能改进

6.取消Query Cache

7.原子DDL

8.更快、性能更好的Schema和Information Schema

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中,我们改进了磁盘格式来使得每个UNDO表有大量的UNDO段。

此外,现在默认为两个单独的UNDO表空间(而非InnoDB系统表空间(最小为2,大小动态变化))中创建UNDO段。

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

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

UTF8性能改进

UTF8性能

由于默认的字符集已经从latin1改为utf8mb4,因此现在UTF8的速度要快得多,在特定查询时速度提高了1800%! Emojis现在无处不在,MySQL当然是选择支持他啦!