【重磅】MySQL 8.0 pre release看点

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

导读

MySQL 8.0即将发布,一起来看看都有什么料。

昨天就收到了官方发给ACEs的邮件,不过今天白天一直在忙着给新房子做保洁,没来得及认真查看邮件内容,只是简单扫了一眼,整体感觉还是有很多惊喜,不过也大体上在意料之中。

重大变更

彻底将数据字典表引擎从MyISAM改为InnoDB。显然地,这是要更进一步放弃MyISAM引擎的节奏,还在负隅顽抗的亲们,要认清形势了,哈哈。事实上,我当初的预期是在5.7就该这么做的。

增加了ROLE特性。这是继续向ORACLE看齐啊,我个人没啥特别感觉。

修改默认字符集为utf8mb4。这个,见仁见智吧,各有喜好,不管怎样,也算是紧跟着时代发展的决定了。

新增INVISIBLE(不可见)索引属性。可将一个索引设置为不可见,那么查询优化器不再识别该索引。这么做的用意是,方便DBA判断某个索引过一阵子是否可以删除,不再担心误杀。

位运算功能增强。以前只能针对INT类型做位运算,现在增加支持二进制类型的运算,比如 [VAR]BINARY/[TINY|MEDIUM|LONG]BLOB 等多种类型。另外,也支持对 IPV6 和 UUID 类型的位运算。

在线修改全局选项(GLOBAL VARIABLES)时,增加 PERSIST 关键字后,可以将该调整持久化,即便实例重启。这就可以避免了在线修改某些选项后,忘了同时修改 my.cnf,造成了实例重启后,这个修改又被恢复原样的问题。这个功能显然也是在学习ORACLE的控制文件做法呀。

增强P_S(performance_schema)功能,主要有几点:

可以在P_S中直接查看错误日志;

在P_S中增加了类似自适应哈希索引的索引机制,便于快速检索P_S中的数据;

在线修改全局选项(GLOBAL VARIABLES)时,增加 PERSIST 关键字后,可以将该调整持久化,即便实例重启。这就可以避免了在线修改某些选项后,忘了同时修改 my.cnf,造成了实例重启后,这个修改又被恢复原样的问题。这个功能显然也是在学习ORACLE的控制文件做法呀。

重构SQL解析器。简单来说,原先的解析器有严重的问题,维护性、扩展性都不好,在8.0里进行了重构,以后会做的更牛逼。

查询优化器Hints功能增强。在5.6及更早版本中,子查询中的派生表总是要进行物化,效率很低。从5.7开始,优化器会根据情况进行判断,自行决定在哪些情形下需要物化,哪些直接合并进外部查询中,通常来说,后一种做法效率会搞很多。在8.0中,可以在SQL中增加 /+ merge / 关键字来决定哪些情形下将派生表合并到外部查询中以提升查询效率。

查询优化器功能增强。它会判断InnoDB Buffer中数据、索引缓冲比例的情况,决定每个SQL的访问模式,尽量避免发生物理读。

增加直方图功能。不知道直方图什么意思的话,可以了解下MariaDB分支中的QUERY RESPONSE TIME这个插件的功能,和这个基本相似。又是学习ORACLE的做法呀,汗(⊙﹏⊙)b

GIS功能增强。增加了经度、纬度、平面地图等功能。

提高数据扫描查询效率。例如下面这样的SQL大概能有5-20%的效率提升:

SELECT * FROM t;
或是
SELECT * FROM t WHERE pk BETWEEN 1000 AND 10000;

增强InnoDB引擎中部分读取或更新BLOB数据类型的效率。

InnoDB Memcached功能增强,增加一次取多个值(mget),以及范围搜索。

修复了InnoDB重启后,自增值丢失的bug,这个bug历史非常悠久(bug id是199,可想而知,嗯...)。

会对那些损坏的数据页加上标记,数据库实例在进行recovery时,就会忽略这些page了。

临时表增强。首先,将压缩类型临时表映射成未压缩格式。其次,将临时表的元数据存储在内存中。

InnoDB性能大幅提升,主要做了几个事情:

可以把想通table ID组内的undo数据批量purge;

废除buffer pool mutex。将原来一个mutex拆分成多个,提高并发;

拆分LOCK_thd_list 和 LOCK_thd_remove 这两个mutex,大约可提高线程链接效率5%。

MySQL复制功能方面的改进或提升不多,这个让我非常诧异,我也就没写出来了。

写到凌晨一点半,实在有点累(开头说过,今天做了一天保洁)。其他更多新特性,我大概过了一眼,好像不是太有诱惑性,这次就先不列出来了。

毕竟,现在还只是pre release,在后续的计划中,肯定还会发生很大变化。比如这次就完全没提到group replication,也压根没提到之前广大中国MySQL用户提交给官方的新功能需求,汗一个(⊙﹏⊙)b

再小小吐槽下,安装包真的是是越做越大了,建议官方发布的时候,再提供一个strip过后的二进制包吧,下载起来更快一些~~~

好了,先到这里,下次再扯。

文章转自老叶茶馆公众号,原文链接:https://mp.weixin.qq.com/s/z6-ivNmjpSiB8mKyKRJyTA

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 Oracle 关系型数据库
【MySQL】MySQL 发展历程和主流分支
【MySQL】MySQL 发展历程和主流分支
|
10月前
|
存储 SQL 关系型数据库
快讯:MySQL 8.0.33于4月18日正式发布,可以下载了
Oracle3月31日宣布了MySQL新的版本策略
305 0
|
11月前
|
关系型数据库 MySQL Linux
MySQL 启动失败的常见原因---发表到爱可生开源社区
MySQL 启动失败的最常见的原因有两类,分别是无法访问系统资源和参数设置错误造成的,下面分别分析如下。
225 0
|
SQL 存储 Oracle
【重磅】MySQL 8.0 pre release看点
【重磅】MySQL 8.0 pre release看点
|
Oracle 关系型数据库 MySQL
MySQL 5.7.8新功能预告
MySQL 5.7.8新功能预告
|
AliSQL Oracle 关系型数据库
开放下载 |《深入MySQL实战》快速理解MySQL核心技术
本书由七天深入MySQL实战营课程内容整理而成,业界大咖联合出品,详细解读AliSQL在双11等高并发场景下的应用与实践。
29691 1
开放下载 |《深入MySQL实战》快速理解MySQL核心技术
|
Cloud Native 关系型数据库 数据库
【DB吐槽大会】第36期 - PG 没有官方插件市场
大家好,这里是DB吐槽大会,第36期 - PG 没有官方插件市场
|
存储 监控 关系型数据库
终于等到你,Percona MySQL8.0 GA版本发布
Percona 在12月21日 发布对Percona Server 8.0 GA版本。 在支持MySQL8.0社区的基础版上。Percona Server for MySQL 8.0版本中带来了许多新功能: 一、安全性和合规性: 审计日志插件:提供数据库活动的监视和日志记录。
2565 0
|
SQL Oracle MySQL
MySQL · Community · Congratulations on MySQL 8.0 GA
It’s great to see MySQL 8.0 has been GA. As a cloud provider in the world, Alibaba Cloud always keeps the pace with Oracle MySQL.
1261 0