MySQL 8.0的十大新特性

今天,让我们看一下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当然是选择支持他啦!??

取消Query Cache

我在性能审计中建议的第一件事就是禁用Query Cache,因为它给设计带来了很多麻烦。

MySQL QC造成的问题比它解决问题要多的多。因此我们决定在MySQL 8.0中取消它,因为大家就不应该使用它。

如果您的工作负载需要Query Cache,那么您应该改用ProxySQL替代Query Cache。

原子DDL

由于采用了新的数据字典,MySQL 8.0现在支持原子数据定义语句(原子DDL)。

这意味着当执行DDL时,数据字典更新,存储引擎操作以及二进制日志中的写入操作会合并到单个原子事务中,该事务要么完全执行,要么根本不执行。

这提高了DDL的稳定性保证未完成的DDL不会留下任何不完整的数据。

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

我们对Schema进行了许多改进,如假索引和直方图。

得益于假索引的存在,像SELECT * FROM sys.session这样的查询速度提高了30倍。

查询尽可能避免进行表扫描,并且索引的使用可大大缩短执行时间。

除此之外,Performance Schema还提供语句延迟的直方图。 新的直方图也使得优化器更为高效。

新的数据字典也使得Information Schema得到了改进,现在不需要大量的.frm表结构定义文件。

另外Information Schema现在支持扩展到超过1,000,000张表啦!

角色管理

MySQL 8.0中添加了SQL角色功能。 角色是指定的拥有特定权限的集合。 像用户帐户一样,角色可以拥有授予和撤消的权限。

角色可以默认或采用session修改。 也可强制设置角色。

加密表空间中的REDO日志和UNDO日志都将被加密

在MySQL 5.7中,可以为存储在每个表中的表加密InnoDB表空间。 在MySQL 8.0中,我们通过为UNDO和REDO日志添加加密来完成此功能。

除此以外,还有很多改进我没有列完。 还有很多其他不错的功能。 我想在下面再列出一些我认为重要的(尽管所有的改进都很重要??)

1.持久自动增量

2.InnoDB的自校正

3.JSON性能优化

3.隐形索引

4.新的备份锁

5.资源组功能

6.额外的二进制日志元数据

7.以及OpenSSL for Community Edition

原文地址:https://www.cnblogs.com/yangmingxianshen/p/8482061.html

时间: 2024-10-14 13:34:08

MySQL 8.0的十大新特性的相关文章

有史来最大改变 Android 5.0十大新特性

有史来最大改变 Android 5.0十大新特性 2014.10.16 14:51:31 来源:腾讯数码作者:腾讯数码 ( 0 条评论 ) 距离Android系统上一次重大更新不到一年的时间,谷歌再一次从KitKat升级到了Lollipop,而两次都使用糖果来命名,营销的目的显露无 遗.当我们首次看到Android 5.0 Lollipop这个名字的时候,就已经意识到这将是Android系统有史以来变化最大的一次升级. 首先,在感官界面设计上,我们彻底迎来了Android系统的扁平化时代,新的系

java6新特性(简述十大新特性)

十大新特性(其实都比较鸡肋,对开发者来说)1.Web Services优先支持编写 XML web service 客户端程序.你可以用过简单的annotaion将你的API发布成.NET交互的web services. Mustang 添加了新的解析和 XML 在 Java object-mapping APIs中, 之前只在Java EE平台实现或者Java Web Services Pack中提供. 2.Scripting(开启JS的支持,算是比较有用的)现在你可以在Java源代码中混入J

java8的十大新特性

推荐学习的博客:http://blog.csdn.net/renfufei/article/details/24600507/-------讲解的非常通俗易懂 Java 9预计将于今年9月份发布,这是否会是一次里程碑式的版本,我们拭目以待.今天,我们先来复习一下2014年发布的Java 8的十大新特性. Java 8可谓是自Java 5以来最具革命性的版本了,她在语言.编译器.类库.开发工具以及Java虚拟机等方面都带来了不少新特性.我们来一一回顾一下这些特性. 一.Lambda表达式 Lamb

Java9都快发布了,Java8的十大新特性你了解多少呢?

Java 9预计将于今年9月份发布,这是否会是一次里程碑式的版本,我们拭目以待.今天,我们先来复习一下2014年发布的Java 8的十大新特性. Java 8可谓是自Java 5以来最具革命性的版本了,她在语言.编译器.类库.开发工具以及Java虚拟机等方面都带来了不少新特性.我们来一一回顾一下这些特性. 一.Lambda表达式 Lambda表达式可以说是Java 8最大的卖点,她将函数式编程引入了Java.Lambda允许把函数作为一个方法的参数,或者把代码看成数据. 一个Lambda表达式可

[Android 新特性] 有史来最大改变 Android 5.0十大新特性

距离Android系统上一次重大更新不到一年的时间,谷歌再一次从KitKat升级到了Lollipop,而两次都使用糖果来命名,营销的目的显露无 遗.当我们首次看到Android 5.0 Lollipop这个名字的时候,就已经意识到这将是Android系统有史以来变化最大的一次升级. 首先,在感官界面设计上,我们彻底迎来了Android系统的扁平化时代,新的系统不仅使用了新的配色,同时看起来也很时尚.未来我们相信包括三星的TouchWiz或LG的Optimus自定义UI都会遵循Lollipop的新

JAVA8 十大新特性详解

本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API “Java is still not dead—and people are starting to figure that out.” 本教程将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字. 一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方

java8十大新特性浅谈

本文将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API "Java is still not dead-and people are starting to figure that out." 本文将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字. 一.接口的默认方法 Java 8允许我们给接口添加一个非抽

Java 9 逆天的十大新特性

在介绍 Java 9 之前,我们先来看看 Java 成立到现在的所有版本. 1990 年初,最初被命名为 Oak:1995 年 5 月 23 日,Java 语言诞生:1996 年 1 月,第一个 JDK-JDK 1.0 诞生:1996 年 4 月,10 个最主要的操作系统供应商申明将在其产品中嵌入 Java 技术:1996 年 9 月,约 8.3 万个网页应用了 Java 技术来制作:1997 年 2 月 18 日,JDK 1.1 发布:1997 年 4 月 2 日,JavaOne 会议召开,参

jQuery 3.0最终版发布,十大新特性眼前一亮

jQuery 3.0在日前发布了最终的全新版本.从2014年10月,jQuery团队对这个主要大版本进行维护开始,web开发者社区便一直在期待着这一刻的到来,终于在2016年6月他们迎来了这一个最终版www.lampbrother.net. 通过jQuery 3.0的版本更新说明,我们看到了一个保持着向后兼容的更轻便,更快速的jQuery.在本文中,我们将介绍一些令人眼前一亮的jQuery 3.0全新特性. 开始前的说明 如果你想要下载jQuery 3.0进行亲自实验,可以通过该页面进行下载.另