上一篇主要讲了功能增强部分,感兴趣的亲可以点击【可能是史上最全的 MySQL 8.0 新特性解读(上)】,这一篇我们继续:
二、性能提升
2.1-基于竞争感知的事务调度
2.2-基于WriteSet的并行复制
MySQL 5.7.22 版本引入了一个新的机制 WriteSet,来追踪事务之间的依赖性,这个特性被用于优化从库应用binlog的速度,在主库并发较低的场景下,能够显著提高从库回放binlog的速度,基于WriteSet 的并行复制方案,彻底解决了MySQL复制延迟问题。只需要设置这2个参数即可
binlog_transaction_dependency_tracking = WRITESET # COMMIT_ORDER
transaction_write_set_extraction = XXHASH64复制
2.3-JSON特性增强
2.4-空间数据类型增强
MySQL 8 大幅改进了空间数据类型和函数,支持更多的空间分析函数和空间类型对象,空间分析功能和性能得到大幅提升。
2.5-doublewrite改进
2.6-hash join
2.6.1-NestLoopJoin算法
从算法角度来说,这是一个M*N的复杂度。
2.6.2-Hash Join
2.7-anti join(反连接)
anti join适用的场景案例通常如下:
找出在集合A且不在集合B中的数据 找出在当前季度里没有购买商品的客户 找出今年没有通过考试的学生 找出过去3年,某个医生的病人中没有进行医学检查的部分
2.8-redo优化
2.9-直方图(统计信息)
2.10-关闭QC(Query Cache )
三、安全性增强
3.1-死锁检测
3.2-默认密码认证插件
3.3-用户密码增强
password_history = 5 ;
复制
时间间隔:新密码不能和过去90天内的密码相同。
password_reuse_interval = 90 ;
复制
修改密码,要输入当前的密码。增加了用户的安全性。
## 默认为off;为on 时 修改密码需要用户提供当前密码 (开启后修改密码需要验证旧密码,root 用户不需要)
password_require_current = on复制
3.4-角色功能
3.5-redo & undo 日志加密
增加以下两个参数,用于控制redo、undo日志的加密。
innodb_redo_log_encrypt
innodb_undo_log_encrypt复制
四、优化器增强
4.1-Cost Model改进
4.2-可伸缩的读写负载 Scaling Read/Write Workloads
8.0版本允许马力全开的使用存储设备,比如使用英特尔奥腾闪存盘的时候,我们可以在IO敏感的负载情况下获得1百万的采样 QPS(这里说的IO敏感是指不在IBP中,且必须从二级存储设备中获取)。这个改观是由于我们摆脱了 file_system_mutex
全局锁的争用。
4.3-在高争用(热点数据)负载情况下的更优性能
五、其他增强
5.1-支持在线修改全局参数并持久化
系统会在数据目录下生成mysqld-auto.cnf 文件,该文件内容是以json格式存储的。当my.cnf 和mysqld-auto.cnf 同时存在时,后者优先级更高。
例如:
SET PERSIST max_connections = 1000;
SET @@PERSIST.max_connections = 1000;复制
5.2-binlog日志过期时间精确到秒
expire_logs_days
参数,而在8.0版本中,MySQL默认使用binlog_expire_logs_seconds参数。
5.3-undo空间自动回收
5.4-地理信息系统 GIS
8.0 版本提供对地形的支持,其中包括了对空间参照系的数据源信息的支持,SRS aware spatial数据类型,空间索引,空间函数。总而言之,8.0版本可以理解地球表面的经纬度信息,而且可以在任意受支持的5000个空间参照系中计算地球上任意两点之间的距离。
注意:升级前,一定要验证jdbc驱动是否匹配,是否需要随着升级。
复制
5.5-参数开关表
select @@optimizer_switch \G
mysql> select @@optimizer_switch \G
*************************** 1. row ***************************
@@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on,hash_join=on,subquery_to_derived=off,prefer_ordering_index=on,hypergraph_optimizer=off,derived_condition_pushdown=on
session 开关
set session optimizer_switch="use_invisible_indexes=off";
set session optimizer_switch="use_invisible_indexes=on";
global 开关
set global optimizer_switch="use_invisible_indexes=off";
set global optimizer_switch="use_invisible_indexes=on";复制
本文关键字:#MySQL 8.0# #新特性解读#
文章推荐:
关于SQLE
SQLE 获取
类型 | 地址 |
---|---|
版本库 | https://github.com/actiontech/sqle |
文档 | https://actiontech.github.io/sqle-docs-cn/ |
发布信息 | https://github.com/actiontech/sqle/releases |
数据审核插件开发文档 | https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_auditplugin/auditplugin_development.html |

文章转载自爱可生开源社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3360次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
911次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
537次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
474次阅读
2025-04-17 09:30:30
OR+DBLINK的关联SQL优化思路
布衣
386次阅读
2025-05-05 19:28:36
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
361次阅读
2025-04-30 17:37:37
RisingWave 产品月报|25 年 4 月
RisingWave中文开源社区
349次阅读
2025-05-08 10:04:55
SQL优化 - explain查看SQL执行计划(下)
金同学
301次阅读
2025-05-06 14:40:00
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
299次阅读
2025-04-28 11:01:25
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
292次阅读
2025-04-30 12:17:54