关于MySQL 8.0的几个重点,都在这里

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 一、关于MySQL Server的改进 1.1 redo log 重构 在MySQL8.0中重新设计了redo log,主要改进fsync,使得效率更高,减少锁,优化flush机制,不会频繁flush。

一、关于MySQL Server的改进

1.1 redo log 重构

在MySQL8.0中重新设计了redo log,主要改进fsync,使得效率更高,减少锁,优化flush机制,不会频繁flush。同时,支持更高用户并发请求。

http://dimitrik.free.fr/blog/archives/2017/10/mysql-performance-80-redesigned-redo-log-readwrite-workloads-scalability.html

1.2 MySQL DDL

在MySQL8.0中实现了DDL的原子性。

https://mysqlserverteam.com/atomic-ddl-in-mysql-8-0/

1.3 直方图

在MySQL8.0中添加了直方图的概念,用于索引的统计和分析。

https://mysqlserverteam.com/histogram-statistics-in-mysql/

1.4 降序索引

MySQL 8.0 开始提供按降序啦~

https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html

1.5 隐藏索引

MySQL8.0支持隐藏索引,在对索引的添加和修改,可以通过隐藏索引来实现,方便了索引的管理。

https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html

1.6 临时表的改进

在5.7以来,所有内部临时表成为"ibtmp1"的共享表空间。此外临时表的元数据也存储在内存中。

在MySQL8.0中,MEMORY存储引擎也将被TempTable存储引擎替换为内部临时表的默认存储引擎。这个新引擎为VARCHAR和VARBINARY列提供更高效的存储空间。

https://dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html

1.7 持久的全局变量

MySQL8.0通过新语法restart,使下次重启仍然生效。

http://lefred.be/content/mysql-8-0-changing-configuration-easily-and-cloud-friendly/

1.8 redo和undo的加密

在MysQL 5.7中,可以为每个表的表空间进行加密。而在MySQL8.0中,还可以为UNDO和REDO LOG进行加密,从而提高了MySQL的安全性。

https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace-encryption.html#innodb-tablespace-encryption-redo-log

1.9 Innodb 锁的修改

在SQL里添加参数FOR UPDATE NOWAIT和FOR UPDATE SKIP LOCKED,可以设置跳过锁的等待,或者跳过锁定。

https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html#innodb-locking-reads-nowait-skip-locked

1.10 窗口函数

在MySQL8.0中,添加了窗口函数,它可以用来实现若干新的查询方式,以便更好地用于数据统计和分析。

http://elephantdolphin.blogspot.com/2017/09/mysql-8s-windowing-function-part-1.html

1.11 新的优化器

在MySQL 8.0.3中,引入了新的优化器SET_VAR,用于在SQL中指定参数配置。

https://mysqlserverteam.com/new-optimizer-hint-for-changing-the-session-system-variable/

1.12 角色

在MySQL8.0中,添加了角色的功能。更方便了用户的管理

http://datacharmer.blogspot.com/2017/09/revisiting-roles-in-mysql-80.html

1.13 字符集的修改

在MySQL8.0.1中,MySQL支持了Unicode 9.0,并且修改了默认字符集为utf8mb4

http://lefred.be/content/mysql-clients-and-emojis/

二、关于MySQL 复制的改进

2.1 复制方面修改

在MySQL8.0.3中,关于binlog和复制方面的新的改变。

http://datacharmer.blogspot.com/2017/09/revisiting-roles-in-mysql-80.html

2.2 更高效Json复制

在MySQL8.0.3中,关于JSON复制更高效,并提供了新的json功能。在binlog中只记录了update修改的内容,而不是全部记录。

https://mysqlhighavailability.com/efficient-json-replication-in-mysql-8-0/

2.3 复制增强

在MySQL8.0.3中,关于对复制的默认参数的修改、对组复制,都增加了“动态跟踪、调试日志”等更多性能方面的监控工具。

https://mysqlhighavailability.com/replication-features-in-mysql-8-0-3/

2.4 MySQL 复制新功能

在MySQL8.0中,对于复制的改进,增加了可观察性,提供了复制的效率(基于WRITESET的并行复制)。

https://mysqlhighavailability.com/mysql-8-0-new-features-in-replication/

三、关于MySQL MGR的改进

3.1 组复制白名单的支持

在MySQL8.0.4 中,对组复制白名单的支持,有效地提高了组复制的安全性。

https://mysqlhighavailability.com/hostname-support-in-group-replication-whitelist/

3.2 MySQL INNODB Cluster 新功能

在MySQL INNODB Cluster 新增加的功能:

https://mysqlserverteam.com/mysql-innodb-cluster-whats-new-in-the-8-0-ga-release/

3.3 MySQL MGR的监控

提高了MySQL组复制的可观察性和可管理性,并在MySQL8.0.4中增强了相关工具。

https://mysqlhighavailability.com/more-p_s-instrumentation-for-group-replication/

四、关于MySQL bug修复

4.1 自增列bug修复(199)

在MySQL8.0 关于自增列的bug的修复。不再采用max(自增id)+1的做法来确定下一个自增id。

http://lefred.be/content/bye-bye-bug-199/


原文发布时间为:2018-04-25
本文作者:田帅萌
本文来自云栖社区合作伙伴“ 老叶茶馆”,了解相关信息可以关注“ 老叶茶馆”。
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
存储 关系型数据库 MySQL
【MySQL】13. 索引(重点)
【MySQL】13. 索引(重点)
34 0
|
6月前
|
存储 关系型数据库 MySQL
【MySQL】MySQL表设计的经验(建议收藏)
【MySQL】MySQL表设计的经验(建议收藏)
2919 3
【MySQL】MySQL表设计的经验(建议收藏)
|
SQL JSON 安全
MySQL 5.7 的生命周期将于2023年结束,大家来拥抱 MySQL 5.8 吧
MySQL 5.7 的生命周期将于2023年结束,大家来拥抱 MySQL 5.8 吧
3170 0
MySQL 5.7 的生命周期将于2023年结束,大家来拥抱 MySQL 5.8 吧
|
SQL Oracle 关系型数据库
Mysql- 基础学习
Mysql- 基础学习
135 0
|
存储 SQL 缓存
"三高"Mysql - Mysql的基础结构了解
​ 内容为慕课网的**《高并发 高性能 高可用 MySQL 实战》**视频的学习笔记内容和个人整理扩展之后的笔记,在快速视频学习一遍之后发现了许多需要补充的点,比如三次握手的连接和Mysql的内部交互流程等等,关于后续的章节也会整合多篇文章后续会陆续发布。
101 0
|
关系型数据库 MySQL 大数据
【大数据系列之MySQL】(三):启动MySQL服务的两种方式
【大数据系列之MySQL】(三):启动MySQL服务的两种方式
206 0
【大数据系列之MySQL】(三):启动MySQL服务的两种方式
|
关系型数据库 MySQL 大数据
【大数据系列之MySQL】(七):MySQL查看版本号的三种方式
【大数据系列之MySQL】(七):MySQL查看版本号的三种方式
189 0
【大数据系列之MySQL】(七):MySQL查看版本号的三种方式
|
SQL 关系型数据库 MySQL
Mysql的基础学习(上)
Mysql的基础学习
68 0
|
关系型数据库 MySQL 数据库连接
Mysql的基础学习(下)
Mysql的基础学习(下)
85 0
|
存储 算法 关系型数据库
【MySQL】(十三)浅谈 MySQL 索引优化分析1
【MySQL】(十三)浅谈 MySQL 索引优化分析1
116 0
【MySQL】(十三)浅谈 MySQL 索引优化分析1