前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我们为何对MySQL 8.0的到来感到兴奋!

我们为何对MySQL 8.0的到来感到兴奋!

作者头像
三哥
发布2018-06-15 15:05:30
9810
发布2018-06-15 15:05:30
举报
文章被收录于专栏:java工会java工会

一大早收到一封oracle官方发来的邮件,邀请我参加mysql改版的网路研讨会。作为一个后端开发者,想必对mysql是非常是熟悉了。下面来聊一聊mysql8.0的新特性。

临时表的改进

在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日志添加加密来完成此功能。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java工会 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档