MySQL 8.0 新特性

本文详细介绍MySQL的最新特性,包括SQL分析器重构、行锁优化、事务性能提升、在线修改undolog数量、直方图统计、认证插件更新、角色功能引入、消除bufferpool mutex、数据字典改进、在线加新列、并行redolog、新增倒序索引、优化器增强、动态参数调整、自增列持久化、JSON性能优化、智能选项、memcached插件增强、redoundolog加密、资源组功能、新增数据字典、字符集升级、CTE表达式、窗口函数等。

1 重构SQL分析器(SQLParser)

2 行锁增加SKIP LOCKED 和NOWAIT特性选项

3 新增事务CATS特性 大大提升事务性能

4 在线修改undo log  数量

5 直方图

6 认证插件由sha356_password 改成caching_sha2_password

7 新增角色role功能将权限打包分组在二次授权

8 消除了buffer pool mutex

9 数据字典全部采用innodb引擎存储,支持DDL原子性,crash safe,metadata 管理更完善(可以利用ibd2sdi工具提取metadata)

10 快速在线加新列

11 并行redo log 提升redo log 的IO性能,可在线调整redo log buffer

12 新增倒序索引, 不可见索引

13 优化器增强 增强CBO特性

14 支持会话级别set_VAR 动态调整部分参数

15 自增列持久化

16 增强json 性能 功能

17 新增智能选项 innodb_dedicated_server

18 innodb memcached 插件支持mget操作

19 增加redo undo log 加密

20 增加resource group 功能

21 新增更多数据字典

22  默认字符集改成utf8mb4

23 通用表达式CTE

24 窗口函数

25 SET PERSIST

26 restart功能(restart clone plugin)

27 取消QC

#整理来自知数堂

### MySQL 8.0 新特性介绍 #### 多值索引与文档存储支持 MySQL 8.0.17 开始支持 JSON 数组的多值索引,这一特性显著增强了 MySQL 的 NoSQL 功能。多值索引属于函数索引,通过虚拟列实现,允许在文档属性上创建索引并支持多个值。这使得 MySQL 在处理文档型数据时,可以更好地支持类似 MongoDB 的应用场景,减少技术栈的复杂性和学习成本 [^1]。 #### InnoDB 死锁检测优化 MySQL 8.0 引入了一个新的动态变量 `innodb_deadlock_detect`,用于控制系统是否执行 InnoDB 死锁检查。在高并发系统中,禁用死锁检查可以带来性能的提升。通过命令 `show variables like 'innodb_deadlock_detect';` 可以查看当前的死锁检测状态 [^2]。 #### 性能优化与并发处理 MySQL 8.0 在性能方面进行了显著改进,特别是在读写负载均衡和高并发场景下的表现。在集中的读写负载情况下,4 个用户并发时,与 5.7 版本相比,性能提高了两倍。这些改进主要归功于对 InnoDB 写入 Redo 日志方法的重新设计。在 8.0 中,Redo 日志的写入和刷缓存操作由专用线程处理,用户线程之间不再争抢 Redo 写入锁,从而提高了硬件性能的利用率 [^3]。 #### 索引优化与函数索引支持 MySQL 8.0 支持反向索引扫描,当排序规则与索引规则相反时,能够有效利用索引,而无需额外的排序操作。此外,MySQL 8.0.13 开始支持函数索引(基于虚拟计算列实现的索引),允许在索引中使用函数(表达式)的值,同时也支持降序索引和 JSON 数据的索引。例如,可以通过以下语句创建一个函数索引: ```sql -- 创建表 create table demo2(c1 varchar(10), c2 varchar(10)); -- 创建普通索引 create index index_c1 on demo2(c1); -- 创建函数索引 create index func_index_c2 on demo2( (UPPER(c2)) ); ``` #### 总结 MySQL 8.0 在多个方面进行了重大改进,包括对 JSON 数据的支持、索引优化、性能提升以及并发处理能力的增强。这些新特性使得 MySQL 在处理现代应用的复杂需求时更加高效和灵活。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值