MySQL 8.0 简介

MySQL 5.7 到 8.0,Oracle 官方跳跃了 Major Version 版本号,随之而来的就是在 MySQL 8.0 上做了许多重大更新,在往企业级数据库的路上大步前行,全新 Data Dictionary 设计,支持 Atomic DDL,全新的版本升级策略,安全和账号管理加强,InnoDB 功能增强等,目前小版本已经 release 到 8.0.16,新的功能仍然在持续推出。

RDS MySQL 8.0 产品是阿里云推出的 MySQL 系列云产品之一,使用完全兼容 MySQL 8.0 的阿 里云 AliSQL 8.0 分支,除了官方在 MySQL 8.0 推出的全新功能外,AliSQL 沉淀了许多在 Alibaba 集团电商业务和云上几十万客户在使用 MySQL 过程中遇到的问题和需求,以此来加固AliSQL, 提升 AliSQL 的性能和稳定性。

下面分别对 MySQL 8.0 和 AliSQL 8.0 相关的版本和功能做简短的介绍:

MySQL 8.0 版本更新

1. 数据字典

MySQL 8.0 摒弃了 Server Layer 定义的 FRM 文件和其它非事务表,使用了一组 InnoDB 表来 保存数据字典,支持事务特性。

2. Atomic DDL

在 Data Dictionary 支持事务特性的基础上,8.0 增加了一个 DDL log 字典表,用来协调在

DDL 过程中,对数据字典,文件系统 和 事务系统的修改,做到原子性。

3. 升级

从 8.0.16 开始,对于系统表的修改,抛弃了 mysql_upgrade工具,使用在系统重启的时候,进 行升级。

4. 安全和账号管理

账号方面,从 8.0 开始,支持 role 对权限进行便捷管理,以及新增多个系统权限,分别对应新 增了 ROLE_EDGES,GLOBAL_GRANTS 两个系统表;mysql schema 下的涉及权限和用户相关的表 更改成 InnoDB 引擎,支持事务特性,保证了账号管理语句的原子性。

认证方面,caching_sha2_password 作为默认的认证 plugin,以提升安全,但要注意并不能和 8.0 之前的client进行兼容。

链路加密,如果编译了OpenSSL 1.1.1 及以上,MySQL 8.0 SSL 将支持到 TLSv1.3 版本。

系统账号,在 8.0.16 新增 SYSTEM_USER 权限,用于区分 系统账号还是普通账户,可以对用户 进行分类管理。

5. Auto increment 持久化

在 InnoDB 引擎中,新增了一个引擎私有的系统表 innodb_dynamic_metadata,自增值就保存 在这个表里,在对每张表进行修改 auto increment 值的时候,都使用 redo log 进行保护,在做

heckpoint 的时候,持久化到这个系统表中,保证下次重启后,auto increment 能够从持久化中恢 复出来,并且不受事务上下文回滚而影响。

6. 死锁检测

在高并发的情况下,InnoDB 引擎中对于事务锁的死锁检测,将是影响性能 scale 的重要因素,

8.0 后提供了一个参数innodb_deadlock_detect:https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_deadlock_detect,用来打开或者关闭引擎的死锁检测,在业 务能够明确相关风险的情况下,关闭死锁检测,能大幅提升并发能力。

7. 临时表

在 InnoDB 引擎中,用户创建的临时表将统一到 ibtmp 文件的临时表空间中; 对于系统运行过 程中产生内存临时表,8.0后启用了新的 TempTable 引擎,支持 blob 字段,功能上优于 memory ngine。

8. Lock

SELECT ... FOR SHARE 和 SELECT ... FOR UPDATE 新增了 NOWAIT 和SKIP LOCKED 语法,减少长时间和非必要的阻塞。

9. Instant add column

InnoDB 解决了长期困扰 DBA 的加字段要 copy 整张表数据的问题。现在可以快速的增加字段,只修改数据字典,而不用修改表中的记录本身。

10. 并行查询

InnoDB 目前支持在 clustered index 上进行并行查询,提供innodb_parallel_read_threads,https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_parallel_read_threads,参数控制session内的并行度。

11. Redo优化

Redo的写入一直是 InnoDB 高并发情况下的瓶颈,8.0 开始:

  • 用户线程可以并发的copy redo 日志到 log buffer中
  • 用户线程可以以更松散的方式把 dirty block 加入到脏块链表中
  • 独立的写线程完成 redo 的持久化

12. Json加强

在Json上,8.0 增加了更多的功能性,详见 MySQL 8.0 的 document。

13. Partial update on lob

InnoDB 继续优化 partial update on lob data,对于仅仅修改很少字节的 lob 字段,能够大幅 减少 undo data,并提升效率。

14. 优化器和对象相关

1) 支持 invisible index,方便用户和 DBA 调试 statement。

2)descending indexes,提升降序扫描的效率。

3)Common table expressions,支持 with 语法完成。

4)Window functions,增加大量窗口函数

5)Regular expression,重新设计了正则表达式的支持。

AliSQL 8.0 功能介绍

除了 MySQL 8.0 官方的特性以外,AliSQL 8.0 在新功能,性能提升,稳定性保证,可诊断性上 做了大量的改进:

1. 诊断

Top SQL:

AliSQL 在 statement 级别上,增加了新的性能诊断指标,方便更快更准确的量化 SQL 的开销:

效果如下所示:

表和索引统计

新增表和索引级别的统计:

InnoDB IO 统计

2. Sequence

AliSQL 8.0 增加对 Sequence 对象的支持,方便和高效的获取单调唯一值:

3. 大文件异步删除

InnoDB 大文件删除带来稳定性开销,所以 AliSQL 8.0 提供了异步删数据文件的机制:

参数设置:

展示临时文件列表:

4. 隐含主键

AliSQL 针对用户没有建 PK 的表,默认添加一个隐含主键,以加速 slave 端的 SQL apply。 查看方法:

5. 事务超时

AliSQL 新增 kill_idle_transaction_timeout 参数,以便对超时的事务连接进行 kill,防止事务长时间未提交带来的系统风险。

6. Rotate slow log

AliSQL 8.0 针对 slow log 收集过程中,对用户实例的影响,以及truncate带来的阻塞可能,提 供了rotate slow log table的功能,影响更小,更快捷,并保证零数据丢失的收集方式。

7. 审计日志

AliSQL 8.0 重新设计的 audit log 模块,提供了四种刷新策略,分别是:

提供适合不同业务模式的 audit log 配置供用户选择。

8. 安全特性

AliSQL 针对 SSL 链路,静态编译了OpenSSL 1.0 版本,目前支持到 TLSv1.2 版本。

9. 优化

AliSQL 针对 semi sync 和 MDL 进行了性能优化,提升了 semi sync 的性能,大幅减少了 MDL 锁阻塞的可能性。

查看产品:云数据库RDS MySQL 版

https://www.aliyun.com/product/rds/mysql

一图快速了解:发布核心、场景、优势、接入、更多!

https://promotion.aliyun.com/ntms/act/mysqlfb.html

点击了解:“阿里云新品发布会频道”

https://promotion.aliyun.com/ntms/act/cloud/product.html

立即订阅:阿里云新品发布会·周刊

https://yq.aliyun.com/articles/703813

作者:云攻略小攻

wampserver3.2.0_MySQL 8.0 技术详解相关推荐

  1. MySQL 8.0 技术详解

    MySQL 8.0 简介 MySQL 5.7 到 8.0,Oracle 官方跳跃了 Major Version 版本号,随之而来的就是在 MySQL 8.0 上做了许多重大更新,在往企业级数据库的路上 ...

  2. mfc编程vc6.0实现进程的创建和通信_免费送书:windows黑客编程技术详解

    01 书怎么送 点赞并留言,关注在下面的公众号后台回复「抽奖」,弹出小程序后点击参与. 开奖时间是 7 月 7 号 20:00 ,一定要留意微信消息,如果你中奖了,请尽快在中奖页面提交收件人信息并备注 ...

  3. 最新ChatGPT GPT-4 相似匹配Embedding技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(一)

    目录 前言 最新ChatGPT GPT-4 相似匹配Embedding技术详解 1. 何为Embedding 2. 相关API 2.1 LMAS Embedding API 2.2 ChatGPT S ...

  4. 最新ChatGPT GPT-4 文本推理技术详解(附ipynb与python源码及视频讲解)——开源DataWhale发布入门ChatGPT技术新手从0到1必备使用指南手册(二)

    目录 前言 最新ChatGPT GPT-4 文本推理技术详解 1. 什么是推理(Reasoning)? 2. 导入ChatGPT 3. 测试ChatGPT的推理能力 3.1 演绎推理(Deductiv ...

  5. 视频直播技术详解(0)开篇

    (原标题:<视频直播技术详解>系列之一:开篇) 文|何李石 随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革.手机设备拍摄视频能力和网络的升级催生 ...

  6. 《视频直播技术详解》系列:(0)汇总

    以转载七牛云的<视频直播技术详解>系列文章为基础,每篇文章都附有笔者在工作实践中的积累和补充.感谢七牛云创作,并感谢读者与笔者的技术交流. <视频直播技术详解>系列:(1)延迟 ...

  7. 【H.264/AVC视频编解码技术详解】十九:熵编码算法(5)——H.264的CABAC(上):语法元素的二值化方法...

    <H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行 ...

  8. Linux磁盘阵列技术详解(二)--raid 1创建

    我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还 ...

  9. 科普:5G网络关键技术详解

    不久前,中国华为公司主推的Polar Code(极化码)方案,成为5G控制信道eMBB场景编码方案.消息一出,在网络上就炸开了锅,甚至有媒体用"华为碾压高通,拿下5G时代"来形容这 ...

最新文章

  1. 如何确定最佳训练数据集规模?6 大必备“锦囊”全给你了
  2. bat maven 一键打包 3.0
  3. pythonpop方法桐柏到郑州大_python脚本之一键移动自定格式文件方法实例
  4. 用php实现登录日志,利用Laravel事件系统如何实现登录日志的记录详解
  5. HandlerExceptionResolvers
  6. eclipse中快捷键
  7. 第三次学JAVA再学不好就吃翔(part117)--单例设计模式
  8. Jmeter(四十二)_控制器下遍历一组参数
  9. 计算机沟通方式,雅思阅读练习:计算机改变沟通方式
  10. Google 中国版搜索引擎项目凉了!
  11. Elasticsearch搜索类型(query type)详解
  12. linux:记录一次 处理tomcat启动卡死无报错现象的曲折过程
  13. 经典C语言学习教程资料
  14. [Unity3D]推荐几个不错的网站
  15. Netspark自动批量扫描powershell脚本
  16. 【3Dtiles】3Dmax模型处理为gltf和3dtiles,包含LOD效果
  17. 显示器突然黑屏怎么办
  18. 遗传算法求解函数最大值的python实现
  19. 运用百度框架paddle进行手势识别【动手实践,附源码】
  20. 2022危险化学品生产单位主要负责人考试题库及模拟考试

热门文章

  1. 剑指 Offer II 070. 排序数组中只出现一次的数字
  2. 面试前准备这些,成功率会大大提升!(Java篇)
  3. 集群高并发情况下如何保证分布式唯一全局ID生成
  4. Github 标星 13K+!这可能是最好的 Java 博客系统
  5. 基本操作1-本地仓库连接远程仓库
  6. 常见条码及其相关概念简介
  7. empty()、isset()、is_null()的区别
  8. 原生JS替代jQuery的各种方法汇总
  9. 原始线性结构单链表的实现以及操作
  10. day1 java基础回顾-多线程