【重磅】MySQL 8.0 pre release看点

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【重磅】MySQL 8.0 pre release看点

导读

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

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

重大变更

  1. 彻底将数据字典表引擎从MyISAM改为InnoDB。显然地,这是要更进一步放弃MyISAM引擎的节奏,还在负隅顽抗的亲们,要认清形势了,哈哈。事实上,我当初的预期是在5.7就该这么做的。
  2. 增加了ROLE特性。这是继续向ORACLE看齐啊,我个人没啥特别感觉。
  3. 修改默认字符集为utf8mb4。这个,见仁见智吧,各有喜好,不管怎样,也算是紧跟着时代发展的决定了。
  4. 新增INVISIBLE(不可见)索引属性。可将一个索引设置为不可见,那么查询优化器不再识别该索引。这么做的用意是,方便DBA判断某个索引过一阵子是否可以删除,不再担心误杀。
  5. 位运算功能增强。以前只能针对INT类型做位运算,现在增加支持二进制类型的运算,比如 [VAR]BINARY/[TINY|MEDIUM|LONG]BLOB 等多种类型。另外,也支持对 IPV6 和 UUID 类型的位运算。
  6. 在线修改全局选项(GLOBAL VARIABLES)时,增加 PERSIST 关键字后,可以将该调整持久化,即便实例重启。这就可以避免了在线修改某些选项后,忘了同时修改 my.cnf,造成了实例重启后,这个修改又被恢复原样的问题。这个功能显然也是在学习ORACLE的控制文件做法呀。
  7. 增强P_S(performance_schema)功能,主要有几点:
    1. 可以在P_S中直接查看错误日志;
    2. 在P_S中增加了类似自适应哈希索引的索引机制,便于快速检索P_S中的数据;
    3. 在线修改全局选项(GLOBAL VARIABLES)时,增加 PERSIST 关键字后,可以将该调整持久化,即便实例重启。这就可以避免了在线修改某些选项后,忘了同时修改 my.cnf,造成了实例重启后,这个修改又被恢复原样的问题。这个功能显然也是在学习ORACLE的控制文件做法呀。
  1. 重构SQL解析器。简单来说,原先的解析器有严重的问题,维护性、扩展性都不好,在8.0里进行了重构,以后会做的更牛逼。
  2. 查询优化器Hints功能增强。在5.6及更早版本中,子查询中的派生表总是要进行物化,效率很低。从5.7开始,优化器会根据情况进行判断,自行决定在哪些情形下需要物化,哪些直接合并进外部查询中,通常来说,后一种做法效率会搞很多。在8.0中,可以在SQL中增加 /*+ merge */ 关键字来决定哪些情形下将派生表合并到外部查询中以提升查询效率。
  3. 查询优化器功能增强。它会判断InnoDB Buffer中数据、索引缓冲比例的情况,决定每个SQL的访问模式,尽量避免发生物理读。
  4. 增加直方图功能。不知道直方图什么意思的话,可以了解下MariaDB分支中的QUERY RESPONSE TIME这个插件的功能,和这个基本相似。又是学习ORACLE的做法呀,汗(⊙﹏⊙)b
  5. GIS功能增强。增加了经度、纬度、平面地图等功能。
  6. 提高数据扫描查询效率。例如下面这样的SQL大概能有5-20%的效率提升:
    SELECT * FROM t;
    或是
    SELECT * FROM t WHERE pk BETWEEN 1000 AND 10000;

  7. 增强InnoDB引擎中部分读取或更新BLOB数据类型的效率。
  8. InnoDB Memcached功能增强,增加一次取多个值(mget),以及范围搜索。
  9. 修复了InnoDB重启后,自增值丢失的bug,这个bug历史非常悠久(bug id是199,可想而知,嗯...)。
  10. 会对那些损坏的数据页加上标记,数据库实例在进行recovery时,就会忽略这些page了。
  11. 临时表增强。首先,将压缩类型临时表映射成未压缩格式。其次,将临时表的元数据存储在内存中。
  12. InnoDB性能大幅提升,主要做了几个事情:
    1. 可以把想通table ID组内的undo数据批量purge;
    2. 废除buffer pool mutex。将原来一个mutex拆分成多个,提高并发;
    3. 拆分LOCK_thd_list 和 LOCK_thd_remove 这两个mutex,大约可提高线程链接效率5%。
  1. MySQL复制功能方面的改进或提升不多,这个让我非常诧异,我也就没写出来了。

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

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

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

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

            </div>
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
259 1
|
SQL 存储 Oracle
【重磅】MySQL 8.0 pre release看点
【重磅】MySQL 8.0 pre release看点
|
SQL 监控 关系型数据库
mysql主从复制出现Waiting for Slave Worker to release partition
本文分享mysql主从复制出现Waiting for Slave Worker to release partition
mysql主从复制出现Waiting for Slave Worker to release partition
|
SQL 存储 关系型数据库
|
14天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
16天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
30 4

热门文章

最新文章

下一篇
无影云桌面