跳到正文
Weiyao Docs
← MySQL 最后更新:2026-09-26
  • MySQL 8.0.39 与 MySQL 5.7.44:功能、架构、实现与运维差异

    文档规模与导航:正文含 433 条编号说明(含纠错和共同能力辨析,不等于 433 个独立新增功能),附 88 个新增及 71 个消失的普通函数注册名称、665 条参数/状态项生命周期事件。正文适合按模块阅读,附录用于检索长尾名称。

    目录

    MySQL 8.0.39 与 MySQL 5.7.44:功能、架构、实现与运维差异目录1. 整体架构与执行链路2. 数据字典与原子 DDL2.1 元数据持久化与访问2.2 原子 DDL 的实际边界3. 连接、认证、网络与协议4. 权限、角色与安全5. SQL、数据类型与函数5.1 查询与约束语法6.2 JSON:逐项区分 5.7 已有与 8.0 新增6.3 正则、类型、时间和其他函数6.4 GIS 与空间计算6. 字符集与排序规则7. 索引与统计信息7.1 四种经常被混淆的索引7.2 索引机制变化7.3 直方图8. 优化器9. 执行器9.1 从传统执行器到迭代器9.2 算子变化10. 内存架构与临时表10.1 内存区域对照10.2 MEMORY → TempTable 的关键变化10.3 会话临时表空间10.4 连接内存限额与容量估算11. CPU、线程与并发12. InnoDB 存储、DDL 与空间管理12.1 没变的核心12.2 存储与维护改进12.3 INSTANT DDL:不是“所有 ALTER 都秒级”13. Redo、Undo、Doublewrite 与恢复13.1 Redo 并发流水线13.2 8.0.30 的 redo 文件与容量重构13.3 Undo 管理13.4 Doublewrite 与文件持久性14. 事务、锁与 XA15. Binlog 与异步复制15.1 日志格式、容量和安全15.2 调度、连接与故障恢复16. Group Replication17. 可观测性与诊断18. 备份、Clone、升级与配置19. 组件、企业版、工具与平台20. 默认值变化核对表21. 删除、弃用与兼容性21.1 已删除/不再支持的主要项目21.2 8.0.39 已弃用但不能写成“已删除”22. 验证示例与迁移检查22.1 角色、窗口、直方图与索引22.2 执行器与内存观测22.3 CHECK 与查询结果兼容性22.4 建议验证顺序23. 版本时间线及审计边界23.1 最容易影响架构理解的里程碑23.2 8.0.39 本身的全部公开发布说明条目23.3 “所有区别”还需要怎样的审计23.4 逐版本复核补充的长尾变化24. 官方资料与固定版本源码24.1 使用资料的优先级24.2 主要入口附录 A:固定版本普通内建函数注册表差异A.1 新增空间函数入口A.2 新增其他公共/管理函数入口A.3 新增内部 DD/系统函数入口(不建议业务调用)A.4 旧注册表中消失的名称附录 B:截至 8.0.39 的选项、系统变量和状态变量生命周期索引B.1 新增事件(468 项)B.2 弃用事件(134 项)B.3 删除事件(63 项)附录 C:逐版本官方发布说明入口附录 D:本次文档核验记录

     

    1. 整体架构与执行链路

    图中箭头是职责关系,不是把每个条件分支画出的源码调用图。

    层次主要变化没有发生的变化
    接入层默认认证、TLS、压缩、管理接口、连接内存控制经典协议没有被 X Protocol 全面替代
    SQL 层CTE、窗口、CHECK、表达式默认值、集合运算不是完全实现 SQL 标准;例如无通用 FULL OUTER JOIN
    优化层直方图、Skip Scan、反连接、派生条件下推等不是所有查询都获得更好计划
    执行层迭代器、Hash Join、运行时计划测量不是通用向量化/MPP 执行器
    元数据统一事务性数据字典、原子 DDL不意味着用户可回滚所有 DDL
    引擎层日志、锁、临时空间、即时 DDL、LOB、并行建索引B+Tree、Buffer Pool、MVCC、WAL 核心仍保留
    复制层并行默认值、压缩、自动故障转移、监控普通异步复制不自动变成强一致集群

    实现入口:8.0.20 执行器变更、事务性数据字典、8.0.39 迭代器源码。

    2. 数据字典与原子 DDL

    2.1 元数据持久化与访问

    编号5.7.448.0.39实现与影响
    DD-01Server 层 .frm 等与引擎字典分离统一事务性 Data Dictionary表、列、索引、表空间、存储程序等对象采用统一模型;减少文件与引擎元数据不一致窗口。
    DD-02元数据文件和不同系统表分散DD 表位于 InnoDB,系统表集中于 mysql.ibd 等受管理结构DD 更新可使用 InnoDB 事务与恢复机制;不能复制 .frm 恢复表定义。
    DD-03InnoDB 自有内部字典与 SQL 字典并存InnoDB 接入 Server DDHandler/引擎私有属性保存在新字典框架中;不再以旧 SYS_* 表作为用户工具依赖接口。
    DD-04元数据查询可能遍历文件并打开表多个 INFORMATION_SCHEMA 表成为 DD 之上的视图元数据查询通常更有效率;并非每一张 I_S 表都完全不访问引擎。
    DD-05无统一对象缓存框架共享 DD cache、对象类型分区、缓存对象引用管理与 Table Definition Cache、Table Open Cache 分工不同;新内存结构必须计入容量评估。
    DD-06无 SDI支持 Serialized Dictionary Information表空间内保存 JSON 序列化元数据;InnoDB 的临时/undo 等特殊空间有例外,其他引擎可使用 .sdi。
    DD-07无 ibd2sdi可从支持的表空间提取 SDI用于诊断元数据,不是“一条命令恢复整个数据库”。
    DD-08mysql.proc、mysql.event 等旧接口存储程序、事件元数据迁入 DD旧脚本直接读取/修改系统表需迁移到正式 SQL/I_S 接口。
    DD-09表统计查询频繁访问引擎information_schema_stats_expiry 缓存统计,默认 86400 秒TABLES/STATISTICS 中某些动态统计可能不是即时值;需要实时值时可设置为 0。

    依据:字典设计、SDI、I_S 与 DD、字典源码。

    2.2 原子 DDL 的实际边界

    8.0 将支持的 DDL 的 DD 更新、引擎操作、binlog 写入作为协调的原子操作。以 InnoDB 为例,DDL 日志跟踪文件创建、删除、重命名等,在提交后完成清理,在崩溃后执行必要恢复。5.7 在某些故障点可能留下文件、字典、binlog 状态不一致的问题。

    编号变化需要保留的边界
    DD-10支持的 CREATE/ALTER/DROP/TRUNCATE/RENAME 等具备原子性要看引擎和具体语句支持;混合引擎操作不能一概保证。
    DD-11多账户管理语句因授权表事务化具有更一致的全成或全败语义不等于允许用户用普通事务自由回滚账户变更。
    DD-128.0.21 起,支持原子 DDL 的 CREATE TABLE ... SELECT 在 ROW binlog 下按单事务记录解决旧分两笔记录的复制/GTID 问题;不是所有引擎都获得此保证。
    DD-13崩溃恢复可以处理 DDL 操作残留原子 DDL ≠ Online DDL ≠ Instant DDL;三者分别讨论失败语义、并发和数据重写。
    DD-148.0.16 起服务器执行系统升级任务mysql_upgrade 不再承担以前的升级动作;升级控制转向 --upgrade。

    DDL 通常仍隐式提交。下面这段代码不能据此被解释为可回滚建表:

    依据:Atomic DDL、升级所做的操作。

    3. 连接、认证、网络与协议

    编号变化/版本5.7.44 → 8.0.39 的具体差异与代价
    NET-01默认认证插件;8.0 GAmysql_native_password → caching_sha2_password。新建账号默认变化;升级已有账号不会自动重新哈希其密码。
    NET-02认证快路径caching_sha2 在服务端保存认证缓存;命中时减少完整认证成本,重启/密码变更等可能使完整认证再次发生。不是缓存明文密码。
    NET-03完整认证通道完整认证要求安全连接,或使用 RSA 密码交换;老驱动可能不认识插件或不支持所需流程。不能只看 TCP 端口是否可连接。
    NET-04TLS 1.3;8.0.16在满足 OpenSSL/客户端条件时支持 TLS 1.3;协议能力取决于二进制构建和协商双方。
    NET-05TLS 旧协议清退;8.0.28TLS 1.0/1.1 不再支持;5.7.44 上的兼容选项不能原样保留。
    NET-06在线 TLS 重载;8.0.16ALTER INSTANCE RELOAD TLS 可更新新连接的 TLS 上下文;已经建立的会话不会自动换证书/重新握手。
    NET-07SSL session reuse;8.0.29服务端缓存 TLS 会话,配合客户端复用降低重复建连的握手成本;ssl_session_cache_* 控制,不等于连接池复用。
    NET-08管理网络接口;8.0.14admin_address/admin_port 提供管理入口,默认端口 33062,必须配置地址才使用;可在普通连接耗尽时用于管理。
    NET-09管理连接线程控制create_admin_listener_thread 可配置独立监听线程;管理账号需要相应权限。管理接口并非默认向公网开启。
    NET-10多监听地址;8.0.13bind_address 支持地址列表,改善多网卡场景。
    NET-11网络命名空间;8.0.22支持的 Linux 环境可指定网络 namespace,适合网络隔离;不是所有 OS 通用功能。
    NET-12压缩协商;8.0.18在原 zlib 能力上新增 zstd 与算法选择、压缩级别;连接端可控制允许算法,减少带宽但消耗 CPU。
    NET-13复制连接压缩配置source/replica 连接也能选择算法和级别;与 binlog 事务压缩是两个独立层次。
    NET-14X Plugin 默认集成5.7 后期已有 X Plugin/Document Store;8.0 发行与默认启用方式改变,默认 X 端口 33060,检查实际包与配置。
    NET-15客户端异步 C API;8.0.16 起新增非阻塞 API 工作流,适合事件循环;不等于服务端每条 SQL 都异步并行。
    NET-16连接内存跟踪与限制;8.0.28可限制单连接及总体连接内存;见内存章节,不能作为 mysqld 总 RSS 的硬上限。
    NET-17会话连接属性/线程观测增强P_S 可进一步关联连接、TLS、线程、语句和内存;原有 session tracking 在 5.7 已存在。

    依据:认证、TLS 协议、连接接口、压缩、SSL 会话复用、异步 C API。

    4. 权限、角色与安全

    编号能力具体变化
    SEC-01角色CREATE ROLE、DROP ROLE、角色授予/撤销、默认角色、SET ROLE、角色继承;角色是权限集合,不是另一个只能登录的普通用户。
    SEC-02角色激活策略mandatory_roles、activate_all_roles_on_login 等;授予角色与当前会话已激活角色要区分。
    SEC-03动态权限原先过于宽泛的 SUPER 拆出 SYSTEM_VARIABLES_ADMIN、SESSION_VARIABLES_ADMIN、CONNECTION_ADMIN、BINLOG_ADMIN 等;组件可注册动态权限。
    SEC-04系统账号;8.0.16SYSTEM_USER 区分 system/regular 账户类别,限制普通管理者修改系统账号。不是 Unix 的 root 概念。
    SEC-05部分撤权;8.0.16partial_revokes 可对全局权限排除某些 schema;影响授权解释和复制权限上下文。
    SEC-06授权语义GRANT 不再隐式创建账号,也不承担旧式设置认证信息;先 CREATE USER 再授权。
    SEC-07授权表事务化mysql 授权表使用 InnoDB;多用户账户语句错误处理与原子性改善。
    SEC-08密码历史password_history、password_reuse_interval,支持实例级和账户级策略。
    SEC-09修改密码校验password_require_current/REPLACE 等要求提供原密码的机制。
    SEC-10双密码;8.0.14RETAIN CURRENT PASSWORD、DISCARD OLD PASSWORD 支持应用分批轮换凭据。
    SEC-11随机密码;8.0.18账户管理语句可生成随机密码,长度参数可配置。
    SEC-12登录失败临时锁;8.0.19FAILED_LOGIN_ATTEMPTS、PASSWORD_LOCK_TIME,与手动 ACCOUNT LOCK、Connection Control 延迟是不同机制。
    SEC-13账户属性;8.0.21COMMENT/ATTRIBUTE 为账户附加说明和 JSON 属性;不是权限本身。
    SEC-14多因素认证;8.0.27一个账户最多三种认证因子,由 authentication_policy 管理;可用服务端插件受发行版约束。
    SEC-15FIDO/LDAP/Kerberos企业认证插件扩展;FIDO 服务端为企业版,不能写成 Community 全部可用。
    SEC-16password validation 组件校验插件之外增加组件形态及策略扩展;插件名和组件变量名不同,迁移配置需重核。
    SEC-17静态加密范围从已有表空间加密扩展到通用表空间、redo、undo、mysql 系统空间及加密表的 doublewrite 数据。
    SEC-18加密默认与权限;8.0.16default_table_encryption、schema 默认加密、table_encryption_privilege_check、TABLE_ENCRYPTION_ADMIN。
    SEC-19Keyring 组件支持更早加载的组件与 manifest,适应启动时 DD/日志解密;5.7 的插件配置不能机械替代。
    SEC-20REVOKE 容错语法;8.0.30IF EXISTS、IGNORE UNKNOWN USER 支持以警告处理部分不存在对象。
    SEC-21SQL 重写豁免;8.0.31SKIP_QUERY_REWRITE 及复制应用线程相关开关,避免管理/复制语句被 Rewriter 意外改写。
    SEC-22弃用而非删除mysql_native_password 自 8.0.34 弃用,但 8.0.39 尚未像 9.0 一样删除;不要把 8.4 默认禁用行为写进本比较。

    依据:角色、权限、账户类别、部分撤权、密码管理、MFA、InnoDB 加密。

    5. SQL、数据类型与函数

    5.1 查询与约束语法

    编号新增/增强版本与细节
    SQL-01非递归 CTE8.0 GA;WITH 命名查询块,优化器可以合并或物化,不保证总是临时表。
    SQL-02递归 CTE8.0 GA;树、层级、序列等查询,cte_max_recursion_depth 默认 1000;8.0.19 递归部分支持 LIMIT。
    SQL-03窗口函数框架OVER、PARTITION BY、窗口 ORDER BY、ROWS/RANGE 帧、命名 WINDOW;保留每行结果而非分组成一行。
    SQL-04排名函数ROW_NUMBER、RANK、DENSE_RANK、PERCENT_RANK、CUME_DIST、NTILE。
    SQL-05跨行取值LAG、LEAD、FIRST_VALUE、LAST_VALUE、NTH_VALUE;帧定义影响 LAST_VALUE 结果。
    SQL-06聚合窗口化SUM/AVG/COUNT/MIN/MAX 等支持 OVER;8.0.14 JSON 聚合支持窗口用法。
    SQL-07LATERAL 派生表8.0.14;FROM 中的派生表可依赖前面表的列,适合逐行计算/相关 Top-N。
    SQL-08CHECK 真正执行8.0.16;5.7 的 CHECK 语法被接受但忽略,8.0 支持 ENFORCED/NOT ENFORCED。CHECK 为 UNKNOWN 的情况也须按 SQL 语义理解,不能代替 NOT NULL。
    SQL-09表达式默认值8.0.13;允许表达式,BLOB/TEXT/JSON/GEOMETRY 可使用符合要求的表达式默认值;括号、函数、列依赖有约束。
    SQL-10RENAME COLUMN不用像 CHANGE 一样重复整个列定义;InnoDB INSTANT 支持范围在后续版本扩展。
    SQL-11不可见列8.0.23;不在 SELECT */隐式插入列列表中出现,仍可显式读写;不等于访问权限控制。
    SQL-12自动不可见主键 GIPK8.0.30;开启 sql_generate_invisible_primary_key 后为缺少显式 PK 的新 InnoDB 表生成主键列;默认 OFF。
    SQL-13GIPK 与隐藏 row_idGIPK 是真实 SQL 列及索引;5.7 InnoDB 自动使用的内部隐藏 row_id 并不是 GIPK。
    SQL-14TABLE 与 VALUES ROW(...)8.0.19;可作为查询/集合操作/部分子查询的数据来源。
    SQL-15INTERSECT/EXCEPT8.0.31;支持 ALL/DISTINCT,默认 DISTINCT;注意 INTERSECT 优先级与括号。
    SQL-16括号查询表达式8.0 后续版本扩展;8.0.31 支持更深嵌套和规范化 LIMIT/ORDER BY 语义。
    SQL-17INSERT 新行别名8.0.19;ON DUPLICATE KEY UPDATE 可引用新行/列别名;旧 VALUES(col) 用法 8.0.20 起弃用。
    SQL-18单表 DELETE 表别名8.0.16 支持;不是多表 DELETE 新增。
    SQL-19存储程序 IF NOT EXISTS8.0.29 扩展 CREATE FUNCTION/PROCEDURE/TRIGGER,便于幂等部署。
    SQL-20行锁语法FOR SHARE、OF table、NOWAIT、SKIP LOCKED;详见事务章节。

    依据:CTE、窗口函数、窗口限制、LATERAL、CHECK、默认表达式、不可见列、GIPK、INTERSECT、EXCEPT。

    窗口函数仍有限制,例如不支持通用嵌套窗口函数、DISTINCT 聚合窗口等;不要把“新增窗口函数”理解为 SQL 标准全部窗口特性。

    6.2 JSON:逐项区分 5.7 已有与 8.0 新增

    编号变化说明
    JSON-01JSON 原地局部更新8.0.2;满足条件的 JSON_SET/REPLACE/REMOVE 可避免整文档重写。是否可原地更新取决于已有值、可用空间和表达式形式。
    JSON-02局部更新 binlogbinlog_row_value_options=PARTIAL_JSON 可在 ROW 格式记录差异;与存储层局部修改是两个开关/判断层次。
    JSON-03JSON_STORAGE_FREE查看局部修改后可复用空间;不能把 5.7.22 已有的 JSON_STORAGE_SIZE 一并误标新增。
    JSON-04JSON 路径扩展数组范围、last、相对尾部定位。
    JSON-05JSON_TABLE8.0.4;JSON 转关系行列,支持 NESTED PATH、FOR ORDINALITY、EXISTS、ON EMPTY/ON ERROR。
    JSON-06重复键规范化与 5.7 的首次重复键取值策略不同,8.0 采用最后重复键获胜;会改变导入/构造结果。
    JSON-07排序键变长JSON 排序不再固定浪费大块排序键空间;改善排序缓存利用率和比较成本。
    JSON-08JSON Schema8.0.17;JSON_SCHEMA_VALID、JSON_SCHEMA_VALIDATION_REPORT,按支持的 Draft 4 范围校验,不是完整支持任意最新 JSON Schema。
    JSON-09JSON_OVERLAPS8.0.17;检测共同数组元素或对象键值,区别于 JSON_CONTAINS。
    JSON-10MEMBER OF8.0.17;JSON 数组成员判断,可与多值索引配合;SQL 类型转换语义必须注意。
    JSON-11JSON_VALUE8.0.21;标量提取、RETURNING 类型、ON EMPTY/ERROR,减少多层提取与 CAST 表达式。
    JSON-12JSON 聚合 OVER8.0.14;聚合函数本身 5.7.22 已有,新增的是窗口执行形式。
    JSON-13JSON_TABLE 行为收敛8.0.20/21 等调整错误/空值处理以贴近标准;JSON null 与 SQL NULL 不能混为一谈。
    JSON-14JSON 布尔上下文8.0.17 后相关隐式比较处理改变;建议显式提取为 SQL 类型,避免把 JSON false 当 SQL FALSE。

    不属于差异:原生二进制 JSON、JSON_EXTRACT/SET/REMOVE、->、->>、JSON_ARRAYAGG/OBJECTAGG、JSON_PRETTY、JSON_MERGE_PATCH/PRESERVE、JSON_STORAGE_SIZE 都不能笼统写成 8.0.39 独有。

    依据:JSON 类型和局部更新、JSON_TABLE、搜索函数、Schema 校验、JSON 工具函数、5.7.22 回补。

    6.3 正则、类型、时间和其他函数

    编号变化实现/兼容性
    FUNC-01正则引擎替换Spencer → ICU,支持 Unicode/多字节;旧字符类、转义、边界匹配不能假定完全相同。
    FUNC-02新正则函数REGEXP_LIKE、REGEXP_INSTR、REGEXP_REPLACE、REGEXP_SUBSTR;REGEXP/RLIKE 对接新引擎。
    FUNC-03正则资源控制regexp_time_limit、regexp_stack_limit,避免复杂表达式无限制消耗资源。
    FUNC-04UUID 二进制辅助UUID_TO_BIN、BIN_TO_UUID、IS_UUID;可选择重排时间字段,不能据此声称随机 UUID 自动变顺序。
    FUNC-05二进制字符串位运算支持超过 BIGINT 64 位范围的二进制字符串位运算;操作数类型会决定二进制或数字执行路径。
    FUNC-06GROUPING 与 ROLLUPGROUPING() 区分汇总行产生的 NULL 和原始 NULL;GROUP BY WITH ROLLUP 后续支持范围增强。
    FUNC-07时间偏移字面量;8.0.19TIMESTAMP/DATETIME 输入可带时区偏移;DATETIME 没有因此变成“保存时区名称”的数据类型。
    FUNC-08时间精度处理TIME_TRUNCATE_FRACTIONAL SQL mode 可选择截断小数秒;要评估旧默认四舍五入行为。
    FUNC-09显式类型转换扩展CAST/CONVERT 的支持类型与内部 cast 注入扩展;EXPLAIN 更容易显示隐式转换。
    FUNC-10预处理参数类型推导;8.0.22参数标记类型的确定/重准备规则改变,提高一致性但可能暴露以前依赖模糊转换的应用。
    FUNC-11TIMESTAMP 默认语义explicit_defaults_for_timestamp 默认 ON,取消依靠首个 TIMESTAMP 的隐式默认规则作为默认行为。
    FUNC-12日期校验共同修复(非净差异)STR_TO_DATE 的完整日期范围检查同时进入 8.0.35 和 5.7.44;不能当作本次升级才新增的行为。
    FUNC-13字符串/函数修复补丁版持续修复 NULL 推导、排序、聚合、预处理结果差异;不是只有“新增函数”会改变结果。

    依据:正则、位运算、类型转换、日期函数、8.0.22、8.0.35。

    6.4 GIS 与空间计算

    编号变化说明
    GIS-01SRS 字典管理空间参考系统,区分地理与笛卡尔坐标系;不再把所有几何计算都当平面坐标。
    GIS-02列 SRID 限制几何列可声明 SRID,插入和计算进行兼容性检查;优化器对空间索引使用有相应约束。
    GIS-03地理计算增强经纬度、椭球地理距离/面积等函数支持范围扩展;轴顺序与单位需核对。
    GIS-04ST_Transform支持坐标参考系转换;8.0.30/32 扩展投影/笛卡尔 SRS 支持,不是任意投影全部支持。
    GIS-05ST_Longitude/Latitude、ST_SwapXY 等提供更明确的地理坐标访问和轴处理。
    GIS-06距离度量和线插值后续增加 ST_FrechetDistance、ST_HausdorffDistance、ST_LineInterpolatePoint(s)、ST_PointAtDistance 等。
    GIS-07空间计算兼容性无效几何、坐标范围、SRID 不匹配错误更严格;5.7 可运行的数据/表达式可能需要清洗。

    依据:空间函数总表、SRS、8.0.32。

    6. 字符集与排序规则

    编号5.7.44 默认/能力8.0.39 默认/能力影响
    CHAR-01character_set_server=latin1utf8mb4不指定字符集的新对象默认改变;已有列不自动转换。
    CHAR-02collation_server=latin1_swedish_ciutf8mb4_0900_ai_ci比较、排序、去重和唯一约束可能变化;迁移要校验数据语义。
    CHAR-03已有 utf8mb4、Unicode 旧规则UCA 9.0 系列及更多语言专属规则支持更全面的 Unicode 排序;不是 UTF-8 编码本身换了。
    CHAR-04多数旧规则 PAD SPACE新 0900 规则 NO PAD尾随空格参与比较的方式变化,'a' 与 'a ' 可能不再相等。
    CHAR-05utf8 通常指三字节 utf8mb3明确弃用 utf8mb3,推荐 utf8mb48.0.39 的 utf8 不能一律当成 utf8mb4;应显式声明。
    CHAR-06较少语言定制日语、中国语言相关和其他语言规则逐步扩展_ai_ci 与 _as_cs 分别代表重音/大小写敏感性组合;不能只比较编码字节数。
    CHAR-07无 0900 规则8.0 使用的新 collation 名称8.0 导出 DDL 回放到 5.7 常因不认识规则失败,改名也未必保持排序语义。
    CHAR-08连接字符集可覆盖服务端默认仍由握手、驱动和 SET NAMES 等影响server 默认 utf8mb4 不保证每条连接都使用它。

    容量影响:latin1→utf8mb4 会改变字符串的最大字节长度,影响索引键长度、sort key、临时表和网络传输上限;实际数据不一定占满每字符 4 字节。5.7 的 utf8mb4 并不缺失,真正差异是默认值与排序规则族。

    依据:utf8mb4、Unicode 字符集、排序规则属性。

    7. 索引与统计信息

    7.1 四种经常被混淆的索引

    索引5.7.448.0.39底层与用途
    FULLTEXT 倒排索引已有继续支持、修复优化单词/词元关联文档 ID 与位置信息;不是 8.0 新增。
    降序索引 DESC声明 DESC 被忽略;可反向扫描升序树真实存储降序 key混合 (a ASC,b DESC) 排序可以直接匹配索引顺序,减少 filesort。
    函数索引通常需显式生成列再建索引8.0.13 表达式 key part内部利用隐藏虚拟生成列;表达式匹配、确定性和数据类型限制仍存在。
    JSON 多值索引无原生数组元素多值索引8.0.17一行可对应多个二级索引条目,是 JSON 数组索引;不是通用全文倒排/Gin 索引。

    7.2 索引机制变化

    编号变化具体边界
    IDX-01不可见索引默认优化器不选它,但 DML 仍维护;用于评估删索引,不能用来测“真正删掉后的写性能”。
    IDX-02可试用不可见索引use_invisible_indexes 开关可让测试会话使用;主键不能变不可见。
    IDX-03降序索引限制InnoDB 支持;包含降序列的二级索引不支持 change buffering;不能只算读取收益。
    IDX-04函数 key part双括号语法;内部隐藏生成列会计入相关列数限制;主键/外键及表达式有约束。
    IDX-05JSON 标量索引5.7 已可用生成列;8.0 的变化是函数索引及 JSON_VALUE 等使写法更直接。
    IDX-06多值索引优化MEMBER OF、JSON_CONTAINS、JSON_OVERLAPS 在满足条件时可使用;写入数组需要维护多个条目。
    IDX-07多值索引限制不支持像普通索引那样的覆盖/有序范围扫描;一个索引只能有一个多值 key part;不能当作通用数组列类型。
    IDX-08空间索引语义增强SRS-aware 范围计算和 SRID 限制影响是否使用空间索引。

    依据:不可见索引、降序索引、函数与多值索引。

    7.3 直方图

    5.7 的索引基数统计不能充分描述非索引列的值分布。8.0 新增列直方图,主要帮助优化器估计过滤率、连接顺序和中间结果规模。

    编号项目实现/限制
    STAT-01持久化列统计DD 保存,INFORMATION_SCHEMA.COLUMN_STATISTICS 暴露 JSON 描述;跨重启保留。
    STAT-02Singleton不同值较少时,一值一桶;记录累计频率。
    STAT-03Equi-height不同值多时,区间分桶;记录上下界、累计频率和不同值数量。
    STAT-04桶数用户选择 1~1024 桶;桶多不等于一定更准确,需要权衡样本与内存。
    STAT-05显式维护ANALYZE TABLE ... UPDATE/DROP HISTOGRAM;8.0.39 不支持后来版本的自动更新直方图语法。
    STAT-06使用边界主要估计列与常量的比较;不是多列相关性统计,也不创建数据访问路径。
    STAT-07与索引统计优先级range/index dive 可提供估计时往往优先使用;有直方图不保证 EXPLAIN 一定使用它。
    STAT-08采样优化;8.0.19InnoDB 支持更高效的采样路径,减少构建统计的成本。
    STAT-09导入直方图;8.0.31USING DATA 'json' 可以导入人工或其他实例生成的统计;适合复制计划环境。
    STAT-10过期风险数据分布改变不会自动保持 histogram 新鲜;定期维护应基于业务变化。

    依据:优化器统计、ANALYZE TABLE。

    8. 优化器

    编号新增/增强起始边界及含义
    OPT-01Skip Scan8.0.13;在满足条件时枚举复合索引前导列值并扫描后续范围。不等于任意 WHERE 都能违反最左前缀直接定位。
    OPT-02直方图选择率改进非索引列倾斜分布估计,可能改变 join order/access path。
    OPT-03DESC/函数/多值索引访问新索引结构增加候选路径;表达式必须满足匹配与类型规则。
    OPT-04EXISTS 半连接8.0.16;原来 IN 的半连接优化扩展到符合条件的 EXISTS,并去相关简单等值谓词。
    OPT-05反连接8.0.17;NOT IN/NOT EXISTS 等可转 antijoin;NULL 语义会阻止某些转换。
    OPT-06单表 UPDATE/DELETE 子查询优化8.0.21;符合限制时可半连接化或物化;ORDER BY/LIMIT 等会限制适用范围。
    OPT-07标量子查询转派生表8.0.21 引入、8.0.24 扩展相关标量子查询;受 subquery_to_derived 控制,默认 OFF。
    OPT-08派生条件下推8.0.22;外层过滤可下推到不能合并的派生表,减少物化数据。
    OPT-09GROUP BY 派生下推分组键条件可下推 WHERE,聚合值条件可下推 HAVING;必须保持语义。
    OPT-10UNION 派生下推8.0.29 扩展到符合条件的 UNION;并非所有递归/非确定性场景都允许。
    OPT-11CTE 合并/物化非递归 CTE 可优化;重复引用物化结果可共享,必要时为访问创建临时索引。
    OPT-12常量条件提前化简8.0.14;在准备阶段移除恒假/恒真项,给 outer join 简化更早创造机会。
    OPT-13常量折叠8.0.16;按列类型边界将不可能范围化简;NULL 列不能粗暴变成 WHERE TRUE。
    OPT-14GROUP BY 不再隐式排序8.0 不保证按分组列排序;要有稳定顺序必须显式 ORDER BY。
    OPT-15ORDER BY LIMIT 策略可控8.0.21 的 prefer_ordering_index 可关闭偏好有序索引的启发式;解决部分“小 LIMIT 反而扫描很多行”。
    OPT-16Hash Join 成本与路径8.0.18 起新增;8.0.20 扩展适用 join 类型,不意味永远优先于索引 NLJ。
    OPT-17SET_VAR hint单语句调整允许 hint 的变量,不改变后续语句会话设置;不支持所有变量。
    OPT-18连接顺序 hintsJOIN_ORDER、JOIN_PREFIX、JOIN_SUFFIX、JOIN_FIXED_ORDER 等让计划干预更细。
    OPT-19索引级 hints;8.0.20INDEX/JOIN_INDEX/GROUP_INDEX/ORDER_INDEX 与各 NO_* 形式,作用于指定用途。
    OPT-20条件下推 hintsDERIVED_CONDITION_PUSHDOWN/NO_* 等用于排查计划回归。
    OPT-21覆盖索引/ICP/MRR/BKA5.7 已有;8.0 为新执行器重构适配与修复,不能笼统标新增。
    OPT-22优化器 trace/成本模型5.7 已有;8.0 扩展记录新变换,保留诊断与成本调节机制。
    OPT-23Hypergraph 边界源码/开关中出现 hypergraph 不代表标准 Community 8.0.39 默认生产优化器已全面替换。不能把 HeatWave 行为写进本文件。

    依据:范围优化/Skip Scan、半连接与反连接、派生条件下推、派生表优化、优化器开关、Hints。

    9. 执行器

    9.1 从传统执行器到迭代器

    8.0.18 引入面向新算子的迭代器执行基础,8.0.20 完成重要的旧执行器替换。执行计划由扫描、过滤、连接、排序、聚合、物化、Limit 等迭代器组合,父节点向子节点请求数据。统一接口更容易包装每个算子计时,也更容易接入 Hash Join。

    这不表示 InnoDB 的页读取接口变成列存,更不表示向量化批处理或跨节点 MPP 已加入普通 Community 查询路径。Handler 存储引擎边界依然存在。

    依据:8.0.18、8.0.20、固定版本执行器目录。

    9.2 算子变化

    编号变化内存/CPU/I/O 影响
    EXEC-01Hash Join;8.0.18build 一侧建 hash table,probe 侧匹配,减少无合适连接索引时反复扫描。
    EXEC-02替代 BNL;8.0.20原 Block Nested Loop 不再使用,相应开关/hint 转而控制 hash join;普通索引 NLJ 仍保留。
    EXEC-03更多连接类型outer/semi/anti/non-equi 等场景扩展;无等值条件的“hash join”仍可能有较高候选比较代价。
    EXEC-04Join buffer 与落盘join_buffer_size 控制 hash join 可用内存,不足可分区写磁盘;不是结果集超内存就一律失败。
    EXEC-05hash table 优化;8.0.23改善对齐、相同 key、扩容内存释放,提升 join buffer 有效利用率。
    EXEC-06窗口执行可能需要排序、缓冲分区/帧和临时表,特定窗口可共用排序;新增 SQL 语法也意味着新增内存压力。
    EXEC-07递归执行递归 CTE 通过工作结果反复扩展,受深度/查询资源限制,不是存储程序递归。
    EXEC-08filesort 内存按需增长;8.0.12不再总在起点一次性拿满 sort_buffer_size;大量并发小排序的内存特性改变。
    EXEC-09JSON sort key 优化可变长度表示减少浪费,提高内存容纳量。
    EXEC-10EXPLAIN FORMAT=TREE;8.0.16更直观表示算子树,可展示 Hash Join 等新路径。
    EXEC-11EXPLAIN ANALYZE;8.0.18真正运行被分析语句,给出 actual time/rows/loops;不是只估算。
    EXEC-12explain_format;8.0.32配置未指定 FORMAT 时的默认输出;8.0.39 的 EXPLAIN ANALYZE 不能按新版本能力假定支持任意格式。

    EXPLAIN ANALYZE 的节点时间通常包含下游子节点耗时;不能将所有节点耗时相加当总耗时,多次 loops 的时间也要按文档解释。它会消耗真实查询资源,不能当成纯解析操作。

    依据:Hash Join、ORDER BY 优化、EXPLAIN。

    10. 内存架构与临时表

    10.1 内存区域对照

    区域5.7.448.0.39 差异
    Query Cache存在,默认关闭已删除,相关内存及全局维护机制退出
    InnoDB Buffer Pool缓存数据/索引页,多实例、在线调整已支持继续存在;增加调整进度、dump 排除等控制,不能说“8.0 才可在线扩容”
    Redo log buffer共享,默认 16 MiB默认 16 MiB,改为动态可调,并发生产与后台消费实现变化
    DD cache分散旧元数据/表定义缓存新增统一字典对象缓存及引用管理,与 table cache 并存
    TempTable无此默认内部引擎默认内部临时表引擎,变长列、全局 RAM/mmap 限额
    Join bufferNLJ/BNL/BKA 路径Hash Join 哈希表及其磁盘分区,内存按算子/计划考虑
    Sort buffer原有 filesort 缓冲按需增长等优化;大排序仍可能多趟归并落盘
    认证/TLS 缓存原认证/TLS机制caching_sha2 认证缓存、受支持的 SSL session reuse 缓存
    P_S memory已有内存 instrumentation覆盖更多模块、语句峰值、连接计量;依然不等于所有 malloc 都可准确归因
    Binlog/复制缓存事务缓存、worker 队列已有压缩、并行 apply 等引入额外工作内存
    后台线程栈引擎、复制等线程已有新增 redo/DDL/并行扫描/调度线程,栈和调度成本也需考虑

    10.2 MEMORY → TempTable 的关键变化

    5.7 的内部内存临时表默认使用 MEMORY,变长字符串按最大长度处理,且某些数据类型会迫使使用磁盘临时表。8.0 默认 TempTable 对变长数据更节省;8.0.13 开始支持 BLOB 类列。用户显式创建 ENGINE=MEMORY 表的语义没有因此全部改变。

    8.0.39 的限制必须分开看:

    参数/资源作用范围8.0.39 行为
    tmp_table_size单个 TempTable 内存临时表8.0.28 起约束单表,默认 16 MiB;达到上限可转 InnoDB 磁盘临时表
    temptable_max_ramTempTable 共享 RAM 预算默认 1 GiB;不是每连接各有 1 GiB
    temptable_max_mmapTempTable mmap 文件预算默认 1 GiB;8.0.23 新增,0 表示不用 mmap
    temptable_use_mmap选择溢出路径的旧开关8.0.16 引入、8.0.26 弃用;8.0.39 尚存在
    max_heap_table_sizeMEMORY 表限制选择 MEMORY 内部引擎时仍有意义,不能与 TempTable 的 RAM 总预算混算
    thread-local block使用 TempTable 的线程常见约 1 MiB,初次大请求可能更大;不计入 temptable_max_ram,线程退出才释放该块
    mmap 文件驻留页OS 页缓存/映射使用磁盘文件不代表 RSS 永不增长,也不代表没有临时磁盘容量需求

    概念路径:单表超过自己的限制可转 InnoDB;多个表合计超过 RAM 预算时可溢出 mmap,mmap 预算耗尽后使用 InnoDB。不能画成“每张表固定依次用满 1G RAM+1G mmap”。8.0.16 起,磁盘内部临时表统一使用 InnoDB,不再选择 MyISAM。

    依据:内部临时表、TempTable 源码、系统变量。

    10.3 会话临时表空间

    8.0.13 起,InnoDB 会话临时空间从共享池分配,通常位于 #innodb_temp。会话断开后空间截断并归还池,改善 5.7 全局 ibtmp1 增长后不能按同样方式回收的问题。ibtmp1 仍存在,主要承担用户临时表的回滚段等职责;不是被删除。

    TempTable mmap 文件、InnoDB 会话临时表空间、用户 CREATE TEMPORARY TABLE 是不同对象。Created_tmp_disk_tables 也不能完整反映 mmap 溢出的空间使用。

    依据:InnoDB 临时空间、会话临时空间表。

    10.4 连接内存限额与容量估算

    8.0.28 新增 connection_memory_limit、global_connection_memory_limit、global_connection_memory_tracking、connection_memory_chunk_size。它们针对被计量的连接内存,Buffer Pool 不在全局连接限额中,系统/管理账号还有豁免规则;默认限额很大,不会自动提供合理的 OOM 防护。

    用于容量分析的关系式是:

    不能简单用 max_connections × (sort_buffer_size + join_buffer_size) 得到精确 RSS:这些缓冲并非所有连接始终分配,一个语句又可能有多个连接/排序算子。升级测试应同时观察 RSS/PSS、P_S、临时目录、swap 和峰值并发。

    依据:8.0.28 发布说明、内存汇总表。

    11. CPU、线程与并发

    编号变化对多核与调度的具体意义
    CPU-01Resource Groups;8.0 GA将线程分配到虚拟 CPU 集合并调节优先级;受 OS/权限支持限制,不是 CPU 配额或内存 cgroup。
    CPU-02redo 专职后台线程;8.0.11将日志生成与写出/刷盘分离,减少前台协调;低并发未必受益。
    CPU-03redo 线程可关闭;8.0.22innodb_log_writer_threads=OFF 让用户线程承担相关工作,适用于实测低并发更优场景。
    CPU-04redo 自旋阈值根据 CPU 使用与刷盘延迟决定自旋/等待,权衡延迟与 CPU 消耗。
    CPU-05PAUSE 调节;8.0.16innodb_spin_wait_pause_multiplier 适配不同 CPU 的 PAUSE 指令成本;不是改变 SQL 锁超时。
    CPU-06锁系统分片;8.0.21单一 lock_sys mutex 的队列保护拆成更细 latch,减少高并发热点。
    CPU-07CATS 调度;8.0.20 增强按锁等待图影响安排唤醒,调度权重独立计算,降低排队连锁阻塞。
    CPU-08并行聚簇索引读取;8.0.14针对支持的 CHECK/计数等路径,innodb_parallel_read_threads 控制;不适用于所有二级索引或任意 SELECT。
    CPU-09并行读取增强;8.0.17改善任务使用、预取和分区扫描;有全局线程限制与回退。
    CPU-10并行建索引;8.0.27在线 DDL 支持的路径可并行排序/装载,innodb_ddl_threads、innodb_ddl_buffer_size 控制。
    CPU-11并行复制默认;8.0.27默认 4 apply workers,增加 CPU 使用机会,也可能增加排队/争用。
    CPU-12ICU/压缩/密码散列更强 Unicode/压缩/认证能力有计算开销;不能假定功能升级一律减少 CPU。
    CPU-13社区连接线程模型默认仍通常 one-thread-per-connection;Thread Pool 并非 8.0 Community 新增默认模式。
    CPU-14一般查询并行边界Hash Join/迭代器不自动把单条常规 SQL 变成多 worker 查询;应区别引擎内部并行、复制并行与查询并行。

    依据:资源组、redo 优化、自旋、8.0.27。

    12. InnoDB 存储、DDL 与空间管理

    12.1 没变的核心

    两者都主要采用行存储、聚簇主键 B+Tree、包含主键值的二级索引、Buffer Pool、undo 支持的 MVCC、WAL 和 checkpoint。没有默认改成 LSM、列存或 append-only 引擎。5.7 已有压缩、通用表空间、在线 DDL、持久化统计、Buffer Pool 多实例。

    12.2 存储与维护改进

    编号变化实现/作用
    ENG-01自增计数器持久化最大计数变化写 redo,checkpoint 保存引擎私有元数据;重启不再仅按现存最大值重建计数。
    ENG-02自增锁默认 2interleaved 取代 consecutive 默认,提升插入并发;不能保证无间隙/连续 ID,SBR 要评估。
    ENG-03损坏标志持久化索引损坏标志进入 redo/引擎元数据,崩溃后保留诊断状态。
    ENG-04LOB 局部更新8.0.4 基础支持、8.0.12 小更新 undo 增强;≤100 字节等小修改可减少整页级操作。
    ENG-05LOB 版本机制外部大对象页/索引和历史版本管理增强,支持更细更新与一致性读取;不是把大对象都放回行内。
    ENG-06通用表空间重命名ALTER TABLESPACE RENAME TO,减少旧管理限制。
    ENG-07表空间离线移动innodb_directories 配合启动扫描定位移动后的文件。
    ENG-08路径白名单;8.0.21DATA DIRECTORY 必须符合 InnoDB 已知目录;恢复更可控但旧部署路径可能需配置。
    ENG-09路径检查开关;8.0.21innodb_validate_tablespace_paths 可避免不必要扫描,适合已确认文件不会移动的环境。
    ENG-10分配空间避免清零;8.0.22Linux 上 innodb_extend_and_initialize=OFF 可使用 posix_fallocate 路径,并通过 redo 处理恢复问题。
    ENG-11AUTOEXTEND_SIZE;8.0.23表/通用表空间可控制增长步长,减少频繁扩文件;不要与系统表空间旧扩展参数混淆。
    ENG-12段预留比例;8.0.26innodb_segment_reserve_factor 调节段中空页预留,权衡增长性能与空间。
    ENG-13fdatasync;8.0.26支持平台可选择只同步必要数据/元信息,可能减少 fsync 开销。
    ENG-14open files 在线控制;8.0.28innodb_set_open_files_limit() 接口调整限制,保留 LRU 文件余量;临时文件计数范围也调整。
    ENG-15专用服务器自配置;8.0.3 起innodb_dedicated_server 按资源推导部分内存/日志/I/O 设置,默认关闭;8.0.30 后需结合新 redo 容量逻辑。
    ENG-16脏页阈值默认变化预刷低水位 0→10,目标脏页上限 75→90,影响刷写节奏而非事务提交持久性本身。
    ENG-17idle flush;8.0.18innodb_idle_flush_pct 控制空闲期刷页比例,改善 SSD 写放大管理。
    ENG-18Buffer Pool core dump 排除支持的 Linux 平台可不将 Buffer Pool 纳入 core,降低转储体积。
    ENG-19在线扩容进度;8.0.31新增状态码/阶段进度,在线扩容本身在 5.7 已存在。
    ENG-20后期实现修复8.0.37/38/39 继续修改文件扫描、并行读、即时 DDL 日志和父目录 fsync;补丁级也影响引擎行为。

    依据:自增、InnoDB 参数、8.0.12、8.0.22、8.0.26、8.0.38。

    12.3 INSTANT DDL:不是“所有 ALTER 都秒级”

    编号阶段支持与实现
    DDL-015.7INPLACE 允许部分在线操作,但加普通列往往仍重建数据;“online”不等于不扫描。
    DDL-028.0.12新增 INSTANT ADD COLUMN,初期只能在末尾添加;元数据保存默认值,旧物理记录不立即补写。
    DDL-038.0.12 等部分虚拟列、默认值、ENUM/SET 定义、索引属性等满足条件时可即时元数据变更。
    DDL-048.0.28RENAME COLUMN 的 INSTANT 范围扩展。
    DDL-058.0.29支持任意位置加列及即时删列;通过行版本和列映射解释不同历史布局。
    DDL-06行版本上限8.0.39 最多 64 个即时加/删列产生的 row versions;不是“表最多只能有 64 列”。
    DDL-07版本观测INFORMATION_SCHEMA.INNODB_TABLES.TOTAL_ROW_VERSIONS;重建可重置相关版本积累。
    DDL-08空间回收即时删除列不立即重写每行,所以不保证立刻回收数据文件空间。
    DDL-09限制行格式、FULLTEXT、表类型、最大行大小、系统表和组合 ALTER 等限制;请求不支持的 INSTANT 会报错。
    DDL-10锁边界准备/提交仍涉及 MDL,长事务可能让“即时”语句等待很久。
    DDL-11建索引普通新建索引仍要读数据、排序和写树,不能因 INSTANT ADD COLUMN 推断索引也即时生成。

    依据:在线 DDL 操作矩阵、在线 DDL 限制、8.0.29。

    13. Redo、Undo、Doublewrite 与恢复

    13.1 Redo 并发流水线

    5.7 并不是完全没有日志后台线程、组提交或并发事务;差异是 8.0.11 将写出/刷盘等职责进一步分离,并重构共享日志缓冲的并发生产方式。

    LSN 有不同含义:已生成、可写连续前缀、已写文件、已刷盘、checkpoint 位置。后生成的片段完成并不允许跨过尚未完成的空洞直接认为全部持久化;并发化仍必须满足 WAL 与恢复顺序。

    编号变化影响
    REDO-01并发填充 log buffer减少对单一写入临界区的串行依赖;不是任意字节无保护地覆盖。
    REDO-02writer/flusher 职责拆分高并发提交可以集中写出/刷盘,降低前台竞争;增加线程协作和唤醒成本。
    REDO-03专门通知线程按目标 LSN 唤醒等待者,减轻写线程额外负担。
    REDO-04flush list 较松排序允许更灵活的脏页登记,辅以已完成边界保证 checkpoint 正确。
    REDO-05redo 等待自旋结合 CPU 水位/刷盘延迟,平衡忙等与睡眠;不能笼统认为自旋越多越快。
    REDO-06log buffer 动态调整无需重启修改大小;区别于磁盘 redo capacity。
    REDO-07线程开关;8.0.22关闭 writer threads 后由用户线程负责对应路径;选项改变执行职责,不改变 durability 参数含义。
    REDO-08归档;8.0.17顺序归档 redo,供备份读取,避免备份追赶不及而被循环覆盖。
    REDO-09暂停 redo;8.0.21用于可重建的新实例批量载入;关闭后崩溃可能不可恢复,不可作为常规生产调优。
    REDO-10redo 加密可配合 keyring 对 redo 静态加密;CPU 和密钥恢复链需要纳入设计。

    依据:redo 优化、固定版本 log0log.cc、log0write.cc。

    13.2 8.0.30 的 redo 文件与容量重构

    项目5.7.448.0.39
    默认布局通常 2 个 ib_logfile*#innodb_redo 下由引擎管理的 #ib_redo*,含活动与备用文件
    容量配置innodb_log_file_size × innodb_log_files_in_group优先使用 innodb_redo_log_capacity
    默认总容量2 × 48 MiB = 96 MiB未显式配置新旧参数时 100 MiB
    在线扩缩不支持新式在线容量管理支持动态扩/缩,按 checkpoint 和文件状态逐步完成
    文件数量用户旧参数指定引擎努力维持约 32 个文件,扩缩过渡状态不可当作永远严格不变
    兼容旧参数主配置已弃用;未显式设新容量时仍可能根据旧参数推导
    观察方式旧文件/状态新 redo 状态变量、P_S 文件信息和 resize 状态

    扩大容量不是扩大内存,也不等于每次提交写更多 redo。它主要增加循环日志可保留的空间,改变 checkpoint 压力、空间占用和恢复工作量。缩容不保证 SET 返回后磁盘占用马上降到目标。

    依据:Redo Log、8.0.30。

    13.3 Undo 管理

    编号变化说明
    UNDO-01默认独立 undo 空间5.7 默认 undo 在系统空间;8.0 默认初始化两个独立 undo 表空间。5.7 不是完全不能配置独立 undo。
    UNDO-02在线建/删;8.0.14CREATE/ALTER/DROP UNDO TABLESPACE;可 ACTIVE/INACTIVE,必须达到允许状态才删除。
    UNDO-03默认自动截断innodb_undo_log_truncate 默认开启;5.7 已有可选截断,差异不是“首次发明”。
    UNDO-04rollback segment 配置语义innodb_rollback_segments 从实例范围的旧含义改成每个 undo 空间相关配置,增加分散机会。
    UNDO-05截断实现;8.0.21减少强制清扫/刷页,旧页被动释放,新初始页 redo 化,并限制 checkpoint 间过多截断。
    UNDO-06undo 加密独立的静态加密控制和 keyring 依赖。
    UNDO-07长事务问题仍在保留旧 read view 仍阻碍 purge;升级不会自动解决 history list 积压。

    依据:Undo 表空间、8.0.21。

    13.4 Doublewrite 与文件持久性

    编号变化说明
    DBL-01独立 doublewrite 文件;8.0.20从系统表空间迁出,按刷页使用不同文件/批次,减少共享路径争用。
    DBL-02可配置文件/目录/页批量innodb_doublewrite_dir/files/pages/batch_size,使放置和批处理可控。
    DBL-03加密页;8.0.23来自加密表空间的 doublewrite 页也可保持加密保护。
    DBL-04DETECT_ONLY;8.0.30轻量检测撕裂页,不保存足够页内容用于恢复;与 DETECT_AND_RECOVER/ON 不等价。
    DBL-05WAL 与 doublewrite 分工redo 重放逻辑修改,doublewrite 处理不完整页写入;有 redo 不代表可随意关闭 doublewrite。
    DBL-06目录 fsync 修复;8.0.38InnoDB 对修改目录结构的文件操作更一致地同步父目录,补充持久性边界。

    依据:Doublewrite、8.0.38。

    14. 事务、锁与 XA

    编号变化具体行为
    TRX-01NOWAIT锁定读无法立即获取目标锁则返回错误,适合快速失败;不是统一修改所有锁等待行为。
    TRX-02SKIP LOCKED跳过被其他事务锁定的行,适合工作队列;返回的是不完整视图,不适合要求完整一致结果的任意业务查询。
    TRX-03FOR SHARE 与 OF保留旧 LOCK IN SHARE MODE 兼容形式,新语法可限定锁定表和等待策略。
    TRX-04CATS按事务阻塞其他事务的程度计算调度权重,而非简单 FIFO;8.0.20 去掉旧 FIFO 分支并独立计算权重。
    TRX-05权重可见INNODB_TRX.TRX_SCHEDULE_WEIGHT 及相关计数器用于观察等待调度。
    TRX-06lock_sys 分片;8.0.21表锁和页内记录锁队列按 shard 保护,减少全局 mutex 争用。
    TRX-07分片结构官方描述为全局 latch 中的 64 个 rw-lock、512 个表 shard mutex、512 个页 shard mutex;这是实现配置,不是新增 512 种 SQL 锁。
    TRX-08数据锁监控接口P_S data_locks/data_lock_waits 取代旧 I_S INNODB_LOCKS/INNODB_LOCK_WAITS,能观察已持有及等待的引擎锁。
    TRX-09多表 UPDATE 半一致读;8.0.21在低于 RR 的适用隔离级别扩展,减少被不符合条件记录阻塞的机会。
    TRX-10XA detached;8.0.29XA PREPARE 后默认与原连接分离,其他连接可提交/回滚,原连接可继续新的事务;受 xa_detach_on_prepare 控制。
    TRX-11XA crash safety;8.0.30改善 binlog 与引擎在 prepare/commit/rollback 故障点的一致性;仍有文档列明的 XID 重用等限制。
    TRX-12XA 复制过滤;8.0.31修正 XA 边界语句被数据库级过滤器错误过滤的行为。

    未改变的基线:InnoDB 默认 REPEATABLE READ;一致性读、当前读、记录锁、间隙锁、next-key lock、MDL 依然存在。锁系统的 latch 保护内存结构,事务 lock 保护逻辑数据,两者不是同一种锁。5.7 已有死锁检测开关。

    依据:锁定读、事务调度、8.0.21、XA 状态、XA 限制。

    15. Binlog 与异步复制

    15.1 日志格式、容量和安全

    编号变化5.7.44 与 8.0.39 的区别
    RPL-01默认启用 binlog5.7 mysqld 原生默认 OFF;8.0 默认 ON。已有安装配置可能早已主动启用。
    RPL-02秒级过期控制binlog_expire_logs_seconds 默认 2592000 秒,即 30 天;5.7 expire_logs_days 默认 0。
    RPL-03自动清理开关;8.0.29binlog_expire_logs_auto_purge 控制自动清理,不影响显式 PURGE。
    RPL-04事务压缩;8.0.20binlog_transaction_compression 使用 zstd 压缩事务 payload,节省日志/传输并增加压缩解压 CPU;默认不因支持而自动开启。
    RPL-05binlog/relay log 加密;8.0.14binlog_encryption 保护磁盘日志及相关缓存路径;客户端工具访问方式有约束。
    RPL-06JSON 差异日志PARTIAL_JSON 减少大 JSON 更新的 row event,要求下游理解格式。
    RPL-07行元数据增强binlog_row_metadata 等提供 FULL/MINIMAL 元数据选择,改善外部解析;不等于完整 schema registry。
    RPL-08行事件可选元信息字符集、列名、主键等信息扩展;CDC 工具需支持相应事件和数据类型。
    RPL-09事务时间信息original/immediate commit timestamp 等帮助监测多级复制延迟。
    RPL-10新事件兼容边界压缩事件、新排序规则、新 DDL/JSON 等使 8.0→5.7 不能作为通用复制路径。

    依据:Binary Log、binlog 参数、8.0.14、8.0.20。

    15.2 调度、连接与故障恢复

    编号变化说明
    RPL-11WRITESET 不是全新5.7.22 已引入 binlog_transaction_dependency_tracking=WRITESET/WRITESET_SESSION;8.0 默认提取算法和实现持续改进。
    RPL-12默认写集合提取transaction_write_set_extraction 从 OFF 改为 XXHASH64;不表示 binlog_transaction_dependency_tracking 默认也变成 WRITESET,8.0.39 仍需核实/显式配置。
    RPL-13默认并行 worker;8.0.270→4;5.7 需主动设置才用 worker 并行。
    RPL-14默认并行类型DATABASE→LOGICAL_CLOCK;同库事务也能按依赖关系并行。
    RPL-15默认提交顺序保留replica_preserve_commit_order=ON;减少副本读取到与源提交顺序不同的中间可见状态。
    RPL-16worker 队列预算默认 pending_jobs_size_max 16 MiB→128 MiB,增加吞吐空间也增加潜在内存需求。
    RPL-17元数据仓库source/relay 复制信息默认使用 TABLE,旧 FILE 仓库进入弃用;5.7 已有 crash-safe TABLE 模式。
    RPL-18延迟复制精度使用原始/直接提交时间戳等改进多级拓扑延迟处理;依赖源端事件包含信息。
    RPL-19自动连接故障转移;8.0.22异步通道可维护候选源列表并自动切换;这不负责自动防脑裂或自动晋升所有业务主库。
    RPL-20托管源组跟踪;8.0.23 等可跟踪 Group Replication 组成员作为异步复制源,减少静态配置。
    RPL-21复制权限检查;8.0.18 起PRIVILEGE_CHECKS_USER 让 apply 使用明确账号权限;REQUIRE_ROW_FORMAT 等收紧事件要求。
    RPL-22匿名事务转 GTID;8.0.23ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS 支持特定迁移拓扑;不是无条件兼容所有 GTID 模式。
    RPL-23GTID_ONLY;8.0.27支持通道减少文件位置仓库维护,对 GTID/ROW/并行等有要求。
    RPL-24副本生成 GIPK;8.0.32REQUIRE_TABLE_PRIMARY_KEY_CHECK=GENERATE 可用于符合要求的通道;不兼容 Group Replication。
    RPL-25命名现代化START/STOP/SHOW REPLICA、CHANGE REPLICATION SOURCE TO,以及 replica/source 新参数名;旧 slave/master 名称多为弃用兼容别名。
    RPL-26半同步插件命名source/replica 新名称和变量;功能本身 5.7 已有,不能把半同步归为新增。
    RPL-27错误/重试/时间监控P_S connection/applier/coordinator/worker 表新增时间戳、事务标识、重试等信息。
    RPL-28后期修复8.0.38 修复 GTID auto-position 与 relay_log_space_limit 的死锁/清理协调问题;8.0.39 修复异步进入 GR 的 CTAS 应用问题。

    依据:副本参数、自动故障转移、权限检查、延迟复制、5.7.22、固定版本复制默认值。

    16. Group Replication

    5.7.17 已有 Group Replication,因此“8.0 增加组复制”错误。InnoDB Cluster/Shell/Router 是配套产品和编排层,也不等于 Server 的单个功能。

    编号8.0 增强说明
    GR-01一致性级别;8.0.14EVENTUAL、BEFORE_ON_PRIMARY_FAILOVER、BEFORE、AFTER、BEFORE_AND_AFTER,在故障切主与读写前后增加等待保证。
    GR-02单主/多主在线切换UDF/API 支持选择 primary 和模式切换,减少重建组操作。
    GR-03Clone 分布式恢复;8.0.17缺失事务很多时可用物理克隆,减少长期 binlog 追赶;仍受 donor/recipient 条件限制。
    GR-04退出动作exit_state_action 的 READ_ONLY/OFFLINE_MODE/ABORT_SERVER 等控制退出后的服务行为,避免孤立节点继续服务写入。
    GR-05自动重新加入group_replication_autorejoin_tries 等降低短暂故障后人工处理成本。
    GR-06成员驱逐与少数派超时expel_timeout、unreachable_majority_timeout 等增强可控性;过小会增加抖动。
    GR-07流控和统计applier/certifier 队列、流控配额等改进,必须按慢节点与突发事务评估。
    GR-08大消息分片组通信消息大小可控,降低单大消息对组通信的影响。
    GR-09恢复连接端点支持为分布式恢复公布端点并配置安全连接,分离业务与恢复网络。
    GR-10MySQL 通信栈;8.0.27除 XCom 外可使用 MYSQL 通信栈,复用 MySQL 认证/网络设施;不是完全取消 XCom。
    GR-11Paxos single leader;8.0.27在允许条件下减少通信协调开销,受通信协议/版本设置影响。
    GR-12成员操作和主从动作控制成员角色切换后的动作,例如只读和异步通道处理。
    GR-13版本兼容放宽;8.0.358.0.35 及以上组成员的补丁版本兼容与受支持回退范围扩展;不能推导可与 5.7 任意混组。
    GR-148.0.37 KILL 语义修复特定 failover consistency 下 KILL 不再受一致性等待阻碍,便于终止操作。

    依据:组复制一致性、Clone 恢复、组复制变量、8.0.27、8.0.35。

    17. 可观测性与诊断

    编号变化诊断价值
    OBS-01data_locks/data_lock_waits替代旧 I_S 锁等待表;脚本应使用新列名和 JOIN 方式,不能原样替换表名。
    OBS-02DD/I_S 新视图新 INNODB_TABLES/INDEXES/COLUMNS 等取代 INNODB_SYS_*;暴露 SDI、instant row versions、空间加密等。
    OBS-03直方图表COLUMN_STATISTICS 可导出/比对分布统计。
    OBS-04TempTable 内存观测memory/temptable 等 instrumentation,辅以文件系统统计才能覆盖 mmap。
    OBS-05临时空间池监控INNODB_SESSION_TEMP_TABLESPACES 可定位会话临时空间。
    OBS-06redo 监控新容量、resize、LSN、文件信息改善刷盘瓶颈诊断。
    OBS-07锁分片监控原 lock_mutex instrument 被 global/table/page shard 的监控项替换。
    OBS-08语句样本digest 汇总中可保留样本 SQL/采样时间,便于从指纹定位原语句。
    OBS-09分布/直方统计P_S statement histogram 和分位数类统计帮助观察尾延迟;区别于优化器的列直方图。
    OBS-10CPU 时间;8.0.28statement_cpu instrument 及相关 CPU_TIME 数据,受平台和采集开关条件限制。
    OBS-11语句内存峰值;8.0.31MAX_CONTROLLED_MEMORY/MAX_TOTAL_MEMORY 等帮助定位高内存语句。
    OBS-12系统变量来源variables_info、persisted_variables 等查询变量来源、设置时间/身份和持久化值。
    OBS-13TLS 状态tls_channel_status 等按通道观察证书/加密上下文。
    OBS-14错误日志 SQL 查询;8.0.22P_S error_log 将支持的错误日志 sink 内容纳入 SQL 诊断。
    OBS-15错误日志组件化filter/sink 管道、JSON sink、系统日志组件,结构化解析更方便。
    OBS-16早期日志加载;8.0.30log_error_services 指定组件可在引擎可用前加载,覆盖更早启动阶段。
    OBS-17P_S PROCESSLIST;8.0.22可选择减少旧全局互斥争用的实现;8.0.35 旧 I_S PROCESSLIST 路径弃用。
    OBS-18EXPLAIN ANALYZE从估算计划扩展到运行时 rows/time/loops;观察热点不能只看 cost。
    OBS-19Clone 进度clone_status、clone_progress 等观察阶段、传输和完成状态。
    OBS-20复制延迟分解连接、排队、worker 执行与提交时间更细,而不只看 Seconds_Behind_Source。
    OBS-21存储程序监控默认;8.0.36多数 statement/sp/* 微指令默认关闭,降低监控开销,不能仅因计数消失判断没执行。
    OBS-22监控也有代价8.0.37/38 修复繁忙 data_locks 查询的内存/锁问题;高频全量采集应评估开销。

    依据:数据锁、锁等待、语句表、变量表、错误日志表、错误日志配置。

    18. 备份、Clone、升级与配置

    编号变化说明
    OPS-01LOCK INSTANCE FOR BACKUP允许 DML、阻止会破坏备份一致性的文件级操作,需 BACKUP_ADMIN;不能直接等同 FLUSH TABLES WITH READ LOCK。
    OPS-02Clone;8.0.17官方插件可本地/远程克隆 InnoDB 物理数据,适合副本/GR 初始化;不是 SQL 逻辑导出。
    OPS-03Clone 的破坏性远程克隆接收端会替换数据,用户数据/状态处理按文档;本报告不执行克隆命令。
    OPS-04Clone 并发 DDL;8.0.27donor 可在克隆期间执行受支持 DDL,clone_block_ddl 可恢复旧阻塞策略。
    OPS-05Clone 删除后延迟;8.0.29clone_delay_after_data_drop 等待异步释放空间的文件系统,减少接收端瞬时空间不足。
    OPS-06Clone 补丁版本兼容;8.0.378.0.37 及以上同系列支持不同点版本克隆;不能由此支持 5.7→8.0 Clone。
    OPS-07Redo archiving备份软件可消费归档 redo,不因循环覆写落后;不是 binlog PITR 的替代品。
    OPS-08SET PERSIST8.0 保存配置到 mysqld-auto.cnf,重启继续有效;SET GLOBAL 仍只改运行时。
    OPS-09SET PERSIST_ONLY只持久化而不立即改运行值,适合相关启动变量;需要权限及变量允许。
    OPS-10RESET PERSIST删除持久化条目;不等于把当前运行值立刻恢复默认。
    OPS-11配置来源冲突my.cnf、命令行、持久化配置可能叠加;升级故障应查看实际来源而非只 grep my.cnf。
    OPS-12服务器内置升级;8.0.16DD、系统表等升级整合到启动过程,使用 --upgrade 控制;mysql_upgrade 留下兼容入口但不做旧任务。
    OPS-13lower_case_table_names必须在初始化时确定并与数据字典匹配,不能升级后随意改值。
    OPS-14RESTART SQL可通过 SQL 请求受支持环境下的重启,依赖进程监督机制/权限;不是任何环境都能重启成功。
    OPS-15配置校验模式mysqld --validate-config 校验启动配置,适合预检;不证明数据字典和业务 SQL 必然能升级。
    OPS-16升级前检查MySQL Shell Upgrade Checker 可检查保留字、类型、元数据、旧功能等;Shell 独立版本必须支持指定 targetVersion。
    OPS-17不支持简单原地降回 5.7新 DD/redo/排序规则/SQL 等不兼容;回退需事先保存旧实例和兼容数据恢复方案。
    OPS-18物理备份兼容备份工具必须理解目标 redo/instant row versions/加密格式;不能拿旧 5.7 工具假定可恢复 8.0.39。
    OPS-19逻辑导出兼容collation、角色、函数、CHECK、GIPK、统计和权限语法都可能影响回放;兼容导出需要有损项清单。

    依据:Backup lock、Clone、Clone 限制、并发 DDL、持久化变量、升级前提、升级路径。

    19. 组件、企业版、工具与平台

    编号模块变化和发行边界
    EXT-01Component infrastructure服务注册、依赖与组件加载框架,INSTALL/UNINSTALL COMPONENT;与旧 Plugin 框架并存。
    EXT-02错误日志组件可配置 filter/sink 链,不再只有旧固定输出路径。
    EXT-03Keyring 组件启动早期加载及配置文件/manifest 模型;组件是否可用取决于发行包。
    EXT-04密码验证组件validate_password.* 组件变量与旧下划线插件变量有区别。
    EXT-05Enterprise Audit日志读取、过滤、加密、压缩、轮转/清理、缓存等持续增强;5.7 企业版已有审计,不能写成整个功能新出现。
    EXT-06Enterprise Data Masking8.0.13 起插件能力,后续组件形态、多字节和字典表支持;社区版并非默认具备。
    EXT-07Enterprise Thread Pool原本已存在,8.0 改进调度/监控/限制;不能用其结果代表社区版连接调度。
    EXT-08Enterprise Firewall企业版原有白名单防护持续增强;必须按企业手册和包核对。
    EXT-09Document StoreX Protocol、CRUD、Collection、DevAPI 功能增强;5.7 后期已经存在,不是 8.0 发明文档数据库。
    EXT-10mysqlbinlog适配新事务压缩、加密读取路径和事件元数据;旧解析器需要升级。
    EXT-11mysqldump适配列统计、GIPK、新对象与权限;8.0 客户端对 5.7 应核对选项,不能把不支持 COLUMN_STATISTICS 当服务故障。
    EXT-12mysqlpump5.7 已有,8.0.34 起弃用,8.0.39 尚不是已删除。
    EXT-13mysql_upgrade8.0.16 起工作由服务端承担,旧自动化流程要调整。
    EXT-14客户端库异步 C API、认证、TLS/压缩适配;旧 ABI/已移除 API 的应用需要重新编译或升级驱动。
    EXT-15构建工具链C++ 标准、编译器、CMake、OpenSSL、ICU、第三方库要求随 8.0 补丁发展;以固定 tag 和目标包为准。
    EXT-16TLS 库8.0.37 随附 OpenSSL 升至 3.0.13;5.7.44 已将相应捆绑库升至 3.0.10,故 OpenSSL 3 本身不是 8.0 独有。仅指捆绑库的平台。
    EXT-17内存分配器;8.0.38Linux 可选择 bundled tcmalloc,部分 Linux 构建使用;这不是 InnoDB Buffer Pool 结构本身变化。
    EXT-18ARM 包;8.0.38aarch64 二进制针对 4K/64K 页大小兼容性调整;OS 页大小不等于 innodb_page_size。
    EXT-19NDBNDB 是独立分布式存储引擎产品线;其线程/内存/复制实现不能归入本文件的 InnoDB 对照。
    EXT-20HeatWave/其他分支HeatWave、Percona、MariaDB、Aurora 的并行查询/线程池/增强不代表 Oracle Community 8.0.39。

    依据:组件、Keyring 组件与插件、数据脱敏组件、8.0.34、8.0.37、8.0.38。

    20. 默认值变化核对表

    以下是未被配置文件/发行包覆盖的上游默认;初始化、OS、编译和 innodb_dedicated_server 可能改变最终值。5.7 的旧 slave* 名称与 8.0 replica* 对应比较。

    项目5.7.448.0.39主要影响
    character_set_serverlatin1utf8mb4新建对象默认编码
    collation_serverlatin1_swedish_ciutf8mb4_0900_ai_ci比较与排序语义
    default_authentication_pluginmysql_native_passwordcaching_sha2_password新账号与驱动兼容
    explicit_defaults_for_timestampOFFONTIMESTAMP 默认行为
    log_binOFFONI/O、空间、复制基础
    日志自动保留expire_logs_days=0binlog_expire_logs_seconds=2592000默认 30 天清理
    log_slave_updates/log_replica_updatesOFFON副本重记 binlog
    master_info_repositoryFILETABLE复制位点元数据
    relay_log_info_repositoryFILETABLEapply 恢复
    slave/replica_parallel_workers04默认并行 apply
    slave/replica_parallel_typeDATABASELOGICAL_CLOCK调度依赖模型
    slave/replica_preserve_commit_orderOFFON提交可见顺序
    slave/replica_pending_jobs_size_max16 MiB128 MiB复制待处理队列预算
    transaction_write_set_extractionOFFXXHASH64写集合计算开销与用途
    innodb_autoinc_lock_mode12插入并发与编号分配
    innodb_undo_tablespaces0默认初始化 2 个,旧变量弃用undo 管理
    innodb_undo_log_truncateOFFON自动空间回收
    innodb_max_dirty_pages_pct7590刷页目标
    innodb_max_dirty_pages_pct_lwm010默认预刷
    max_allowed_packet(server)4 MiB64 MiB网络包上限,非每连接预分配
    event_schedulerOFFON事件调度是否默认运行
    内部内存临时表引擎MEMORYTempTable内存布局与溢出方式
    内部磁盘临时表可配置 InnoDB/MyISAM只支持 InnoDB临时磁盘行为
    默认 redo 总容量96 MiB100 MiB新容量管理模型
    Query Cache存在,type 默认 OFF删除参数和 SQL_CACHE 兼容性
    innodb_log_buffer_size16 MiB,非动态16 MiB,动态值未变,可管理性变了
    back_log 自动值min(50 + max_connections/5, 900)min(max_connections, 65535)等待接入队列,仍受 OS 限制
    innodb_flush_neighbors10不再默认顺带刷邻接脏页,更适合 SSD 场景
    local_infile(server)ONOFFLOAD DATA LOCAL 需明确启用并配合客户端能力
    log_error_verbosity32默认少记录 Note 等低严重度信息
    optimizer_trace_max_mem_size16 KiB1 MiB优化器 trace 默认内存上限
    server_id01复制拓扑仍必须显式分配唯一 server_id
    P_S events_transactions_current/history consumerOFFON默认事务事件采集开销/可见性变化
    slave_rows_search_algorithmsTABLE_SCAN,INDEX_SCANINDEX_SCAN,HASH_SCAN无合适索引时副本查找行策略变化;8.0.39 已弃用此调节方向
    max_length_for_sort_data10244096,但已弃用且不再有效控制排序不能把数值变化当可用调优手段
    innodb_flush_method(普通 Unix 配置)fsyncfsync不要把专用服务器自动配置或 8.4 默认写成 8.0.39 默认

    重要未变项:默认 InnoDB、默认 RR、默认 ROW binlog 格式、默认 DYNAMIC 行格式、默认 innodb_file_per_table=ON、innodb_flush_log_at_trx_commit=1、sync_binlog=1、max_connections=151 等,不能当作此次新增/默认改变。ONLY_FULL_GROUP_BY 与严格模式在 5.7.44 默认已启用;SQL mode 的一个删除项是 NO_AUTO_CREATE_USER。

    back_log 的自动计算另见两个 tag 的 sql/mysqld.cc。

    主要依据:5.7.44 sys_vars.cc、8.0.39 sys_vars.cc、5.7.44 ha_innodb.cc、8.0.39 ha_innodb.cc。

    21. 删除、弃用与兼容性

    21.1 已删除/不再支持的主要项目

    编号项目迁移影响
    REM-01Query Cache删除 query_cache_*、相关状态和 SQL_CACHE 用法;SQL_NO_CACHE 没有旧缓存控制意义。
    REM-02旧元数据文件/表依赖.frm/.TRG/.TRN/.par 等旧存储方式退出相关对象管理;mysql.proc/event 旧接口不可沿用。
    REM-03通用分区层仅使用原生分区引擎;5.7 的 MyISAM 等旧分区表需要先迁移,不能原样升级。
    REM-04INNODB_SYS_* 旧表改用新 I_S DD 视图;监控/备份工具必须适配。
    REM-05INNODB_LOCKS/LOCK_WAITS改用 P_S data_locks/data_lock_waits。
    REM-06旧 file format 选项innodb_file_format、innodb_file_format_check/max、innodb_large_prefix 等删除。
    REM-07innodb_support_xa不再提供该旧开关。
    REM-08GRANT 自动建用户账号创建/认证与权限授予分离。
    REM-09NO_AUTO_CREATE_USERSQL mode 删除;把 5.7 sql_mode 原样带入可能启动/设置失败。
    REM-10PASSWORD() 与旧密码函数/语法不能再用旧函数生成认证字符串;应用不应依赖账户密码格式作为业务哈希。
    REM-11旧 DES/ENCODE/DECODE 加密函数使用受支持函数/应用密码库,并制定旧数据解密迁移策略。
    REM-12多个旧 GIS 非 ST_ 函数名检查函数是否被移除或更名,不能批量假定全部只是加前缀等价。
    REM-13GROUP BY ASC/DESC在 GROUP BY 中表达排序的旧写法删除;使用单独 ORDER BY。
    REM-14PROCEDURE ANALYSESELECT 的旧分析扩展删除。
    REM-15EXPLAIN EXTENDED/PARTITIONS 修饰旧写法退出;使用当前 EXPLAIN 格式与 SHOW WARNINGS。
    REM-16旧 SQL modesDB2/MAXDB/MSSQL/MYSQL323/MYSQL40/ORACLE/POSTGRESQL、NO_FIELD_OPTIONS/NO_KEY_OPTIONS/NO_TABLE_OPTIONS 等清理。
    REM-17myisam_repair_threads / myisamchk --parallel-recover8.0.30 删除这些并行修复接口;不是删除 MyISAM 引擎。
    REM-18mysql_install_db 等旧程序使用 mysqld --initialize;旧脚本和打包流程需迁移。
    REM-19libmysqld 嵌入式服务器不再提供;应用架构不能只替换动态库。
    REM-20libmysqlclient 旧接口/my_bool旧客户端代码可能需重新编译和改类型/接口。
    REM-21TLS 1.0/1.18.0.28 删除,旧连接必须升级。
    REM-22BNL 执行算法8.0.20 起由 hash join 相关路径替代;开关名称尚可能保留。
    REM-23磁盘内部 MyISAM 临时表8.0.16 起该用途删除;不代表 MyISAM 存储引擎本身完全删除。

    ALTER IGNORE TABLE 在 5.7 已被删除,不属于这两个版本的净差异。其中一些旧语法/选项在 5.7 已处于弃用或无实际作用状态。迁移时应以应用实际使用和参数清单为准,而非看到“removed in 8.0”就推断 5.7.44 仍完整工作。

    依据:8.0 删除功能、升级行为变化、选项生命周期。

    21.2 8.0.39 已弃用但不能写成“已删除”

    编号项目截止 8.0.39 状态
    DEP-01mysql_native_password8.0.34 弃用,仍存在
    DEP-02default_authentication_plugin8.0.27 弃用,authentication_policy 为新配置方向
    DEP-03utf8mb3 与 utf8 别名弃用,显式迁移到 utf8mb4
    DEP-04整数显示宽度、ZEROFILL 等多项类型属性弃用;显示宽度不决定 INT 存储范围
    DEP-05SQL_CALC_FOUND_ROWS/FOUND_ROWS()8.0.17 弃用;需要计数时评估单独 COUNT
    DEP-06INSERT 中 VALUES(col) 引用8.0.20 弃用,改新行别名
    DEP-07innodb_log_file_size/files_in_group8.0.30 弃用,改 redo capacity
    DEP-08binlog_format 与非 ROW 方向8.0.34 弃用设置 binlog_format 等相关能力;8.0.39 仍不能写成只剩 ROW
    DEP-09mysqlpump8.0.34 弃用,未在 8.0.39 删除
    DEP-10旧 master/slave 语句/变量多数以兼容别名保留,逐步迁移 source/replica
    DEP-11复制 FILE 仓库相关配置弃用,推荐 TABLE
    DEP-12旧 INFORMATION_SCHEMA.PROCESSLIST8.0.35 弃用,推荐 P_S 路径
    DEP-13账号/授权通配符8.0.35 起相关 %/_ 和特定 localhost 匹配行为弃用,未全部删除
    DEP-14validate_password/keyring 旧插件相关插件向组件迁移,具体插件逐项核对
    DEP-15旧 compression/--ssl 等选项由新算法/SSL mode 等方式替代,版本与客户端选项分别核对

    本报告明确排除的后续功能:8.0.40 的 mysql --system-command、8.0.43 的 --commands,8.4 的默认值改动和认证禁用策略,以及 9.x 向量类型、更新的优化器功能。在线 8.0 手册提到它们,不意味着 8.0.39 可用。

    22. 验证示例与迁移检查

    以下为阅读/测试示例,本次未对生产库执行。示例需在测试 schema、相应权限下运行;查询计划取决于数据和统计,不保证命中某索引或算法。

    22.1 角色、窗口、直方图与索引

    22.2 执行器与内存观测

    22.3 CHECK 与查询结果兼容性

    22.4 建议验证顺序

    1. 记录两边完整版本/发行包、所有显式参数、插件和实际运行变量;默认值表不能代替实例快照。

    2. 校验驱动认证、TLS 和压缩;区分“连接成功”与预处理、批量读写、连接池重连都正常。

    3. 检查保留字、删除语法、字符集/尾随空格、JSON 重复键、CHECK 与日期转换。

    4. 用真实数据分布比较计划、实际行数、临时表落盘、锁等待及 P95/P99,不能只用空表 EXPLAIN。

    5. 以相同并发重测 RSS、连接内存、TempTable/mmap、redo writer 的 CPU 和 fsync 延迟。

    6. 验证备份恢复、GTID、CDC、复制延迟、binlog 过期和故障切换;做好可执行回退方案。

    7. 额外验证 8.0.39 的准确补丁边界,不能用 8.0.11 的经验或 8.4 的默认值替代。

    23. 版本时间线及审计边界

    23.1 最容易影响架构理解的里程碑

    版本关键变化(选摘,非该版全部内容)
    8.0.11 首个 GA事务性 DD、原子 DDL、角色、CTE、窗口、直方图、新默认字符集/认证、redo 专职线程等
    8.0.12INSTANT ADD COLUMN、LOB 小修改 undo、filesort 内存增长等
    8.0.13函数索引、Skip Scan、表达式默认值、TempTable BLOB、会话临时空间
    8.0.14LATERAL、JSON 窗口聚合、双密码、在线 undo、管理接口、并行读取
    8.0.16CHECK 执行、自动升级、TLS 1.3/在线重载、EXISTS 半连接、TREE
    8.0.17多值索引、JSON Schema、反连接、Clone、redo archive
    8.0.18Hash Join、EXPLAIN ANALYZE、zstd 连接压缩
    8.0.19TABLE/VALUES、插入新行别名、时区偏移输入、登录失败锁
    8.0.20迭代器替换关键阶段、BNL 退出、独立 doublewrite、binlog 压缩
    8.0.21lock_sys 分片、redo 开关、JSON_VALUE、原子 CTAS 复制
    8.0.22派生条件下推、redo writer 开关、异步连接 failover、连接 namespace
    8.0.23不可见列、mmap 上限、doublewrite 加密、AUTOEXTEND_SIZE
    8.0.24相关标量子查询转换增强
    8.0.26fdatasync、段预留比例控制等
    8.0.27并行复制新默认、MFA、并行建索引、GR 通信栈、Clone 并发 DDL
    8.0.28连接内存限制、TempTable 单表限制、TLS 1.0/1.1 删除
    8.0.29即时加/删列行版本、XA detach、SSL session reuse
    8.0.30动态 redo capacity、新 redo 布局、GIPK、XA crash safety
    8.0.31INTERSECT/EXCEPT、导入 histogram、语句内存/扩容监控
    8.0.32explain_format、副本 GIPK、空间转换增强
    8.0.33~36维护、安全、弃用、性能和结果正确性修复;不能视为没有差异
    8.0.37Clone 点版本兼容、哈希库替换、redo/并行读/监控修复
    8.0.38tcmalloc 构建选项、目录 fsync、复制与内存修复;存在严重启动回归,已撤回
    8.0.39修复创建大量表后的重启失败、提高启动表空间扫描性能、修复异步→GR 的 CTAS 错误

    23.2 8.0.39 本身的全部公开发布说明条目

    8.0.39 官方发布说明只有三项修复,不能把它当作整个 5.7→8.0 的变化:

    1. 修复创建大量表(8001 或更多)后某些情况下无法重启,Bug #36808732,回归来源 #33398681。

    2. 改进启动时表空间文件扫描性能,Bug #110402 / #35200385。

    3. 修复异步复制通道向 Group Replication 输送 CREATE TABLE ... SELECT 时副本出错,Bug #36784284。

    来源:8.0.39。8.0.38 被撤回的原因见 8.0.38 发布说明。

    23.3 “所有区别”还需要怎样的审计

    本文件覆盖模块级和公开能力级差异,但以下内容不能从两份手册自动推导完整:

    因此本文的“尽可能详细”采用“有来源、有版本边界、有局限说明”的清单方式;没有把缺乏证据的推测包装成已穷尽事实。

    23.4 逐版本复核补充的长尾变化

    以下补充容易被“窗口、角色、Hash Join”等大功能掩盖的接口和实现变化。它们属于前述模块的细项,而不是新的独立架构层。

    编号变化版本、机制与影响
    MORE-01Buffer Pool 并行初始化8.0.11,多线程初始化减少大 Buffer Pool 启动等待;与在线 resize、并行 SQL 不同。
    MORE-02文件创建刷盘节流8.0.13 innodb_fsync_threshold,按累计写入量分批同步新文件,避免大文件创建时 OS 缓存突发占用和集中刷盘。
    MORE-03单线程 COUNT(*)8.0.13 优化无 WHERE/GROUP BY 的 InnoDB 简单计数路径;仍需根据 MVCC 可见性计数,不是引入常数时间精确行数。
    MORE-04默认邻页刷写关闭innodb_flush_neighbors=0,减少 SSD 不需要的邻页额外写入;机械盘上仍需实测。
    MORE-05线程栈增大8.0.27 将默认 thread_stack 提高到 1 MiB;5.7 常见 64 位构建为 256 KiB,其他平台需核对;虚拟栈预留不等于全部常驻 RSS。
    MORE-06log_status 一致快照8.0.11 P_S log_status 为备份协调提供日志位置状态;采样时的短暂阻塞与持有整个备份期间全局锁不同。
    MORE-07慢日志扩展8.0.14 log_slow_extra 为 FILE 慢日志增加线程、读写字节、临时表等额外字段;TABLE 输出不因此同样扩展。
    MORE-08Statement ID8.0.14 P_S 语句事件增加 STATEMENT_ID;8.0.33 可通过会话状态跟踪返回成功语句的 ID。
    MORE-09SHOW CREATE 展示show_create_table_verbosity 可显示更完整选项;显式列 collation 等输出规则变化影响 schema diff 工具。
    MORE-10外键自动命名8.0.16 不再按旧方式使用 FOREIGN KEY index_name 生成约束名;迁移脚本不应依赖隐式生成名称。
    MORE-11DROP 的外键检查原子 DDL 路径在删除前检查相关关系,减少多表语句部分成功的问题。
    MORE-12RENAME 与显式表锁8.0.13 允许符合条件的 WRITE-locked 表重命名;不是所有读锁/混合锁都允许。
    MORE-13字符集变更无需重建的特例8.0.14 未建索引的 CHAR/VARCHAR/TEXT/ENUM 列,utf8mb3→utf8mb4 或任意字符集→binary 的特定转换可原地完成;必须满足文档限制,绝非任意字符集转换零成本。
    MORE-14GROUP BY ROLLUP 组合8.0.12 放宽 ROLLUP 与 ORDER BY/DISTINCT 的组合限制,适合有排序需求的汇总报表。
    MORE-15默认当前用户表达式8.0.34 CURRENT_USER/SESSION_USER/USER/SYSTEM_USER 可用于受支持 VARCHAR/TEXT 默认表达式;副本执行和审计语义需评估。
    MORE-16时间函数范围扩展8.0.28 FROM_UNIXTIME/UNIX_TIMESTAMP/CONVERT_TZ 在支持平台使用更大 64 位范围;不等于 TIMESTAMP 列本身解除 2038 上限。
    MORE-17窗口数量限制8.0.28 明确每个 SELECT 最多 127 个不同窗口,包含命名和隐式窗口。
    MORE-18utf8 名称显示8.0.29/30 多处元数据/SHOW 输出改显示 utf8mb3 与相应 collation 名称;业务可能仅因文本不同触发 schema drift 告警。
    MORE-19主机名长度8.0.17 多处 host name 最大长度提高到 255 ASCII 字符,账号表/插件/驱动相关结构需匹配。
    MORE-20LOCAL 导入默认关闭local_infile 默认 OFF;服务端打开仍需客户端允许 LOCAL,两个条件不能替代。
    MORE-21持久化敏感变量8.0.29 支持对被标记为敏感的持久化变量采用加密存储/恢复,依赖相应 keyring 能力与配置;不是 mysqld-auto.cnf 所有内容天然保密。
    MORE-22Binlog 内部 I/O 接口8.0.13 将日志读写和事件反序列化路径重构,增强损坏事件校验;CDC 仍必须自行验证输入。
    MORE-23GTID 与临时表8.0.13 放宽 ROW/MIXED 条件下事务/存储程序使用 CREATE/DROP TEMPORARY TABLE 的部分限制,不能套用于所有 binlog 格式。
    MORE-24分区事件信息8.0.16 row event 可携带 partition/subpartition 信息,改善复制定位与解析信息。
    MORE-25源版本跟踪original_server_version/immediate_server_version 区分原始源与直接源的版本,服务跨版本复制行为判断。
    MORE-26GR IPv68.0.14 组通信完整支持 IPv6,涉及成员地址和 allowlist 配置。
    MORE-27GR 本机输入通道8.0.14 通过共享内存专用输入通道降低本机向组通信引擎传送消息开销。
    MORE-28XCom 消息缓存8.0.16 增加缓存大小控制;不能把 Query Cache 删除理解成 XCom 也不缓存消息。
    MORE-29GR event horizon可查询/调整并发共识实例范围,控制一致性通信流水线;与 SQL 事务隔离级别无关。
    MORE-30X Protocol 预处理8.0.14 支持 SQL prepare;经典协议预处理在 5.7 已有。
    MORE-31X 会话重置8.0.16 增加不重新认证/断开连接的会话状态重置能力;经典 COM_RESET_CONNECTION 原本已存在。
    MORE-32X 返回字符集8.0.14 明确检索数据按 utf8mb4 转换返回,客户端不能假定与旧返回字节语义完全一致。
    MORE-33X CRUD 查询能力X Plugin/DevAPI 的文档补丁、数组、锁定读、结果通知等按协议版本扩展;不能因连接 33060 成功就假定旧 Connector 理解新特性。
    MORE-34P_S keyring_keys8.0.16 暴露密钥标识/拥有者/backend ID 等元信息,不暴露密钥内容。
    MORE-35线程名导出到 OS8.0.27 支持把被 instrument 的线程名称传给操作系统,方便 top/perf 等关联内部线程。
    MORE-36Telemetry 生命周期服务8.0.33 给插件/组件提供 SQL 生命周期通知接口;特定 HeatWave telemetry 插件不能算社区默认功能。
    MORE-37崩溃栈结构化补录8.0.31 启动时可处理传统错误日志尾部未处理堆栈并交给日志服务,改善 JSON/P_S 可见性。
    MORE-38FIPS 与 SSL 构建8.0 移除 yaSSL 构建路径,OpenSSL/FIPS 能力受库/模块/平台条件限制;后期 ssl_fips_mode 弃用状态需检查。
    MORE-39企业线程池事务限制8.0.31 提供最大事务数量、事务启动延迟、每组 query threads 等控制,处理过量并发,而非单纯增加线程。
    MORE-40企业加密组件8.0.30 从旧 openssl_udf 形态演进到组件,算法/权限和参数行为须按组件文档迁移。
    MORE-41企业审计细项增加应用自定义审计消息、按条件禁用审计、额外性能字段和清理控制;审计能力在 5.7 企业版已存在。
    MORE-42保留字变化WINDOW、WITH、RANK、CUME_DIST 等影响旧对象命名;8.0.32 对未加引号的 FULL 标识符发出弃用警告,不能说当时已经完全禁止。升级检查应使用目标版本关键字表,不能靠固定小名单。
    MORE-43哈希容器替换8.0.37 以 unordered_dense 替代 Robin Hood hashing 库;这是内部容器实现演进,不是给用户新增 HASH 索引类型。
    MORE-44Windows 分配器8.0.29 引入 Windows jemalloc 支持并用于官方二进制;跨平台比较内存曲线须考虑分配器。

    本节依据:8.0.11、8.0.12、8.0.13、8.0.14、8.0.16、8.0.17、8.0.27、8.0.28、8.0.29、8.0.30、8.0.31、8.0.33、8.0.34。

    24. 官方资料与固定版本源码

    24.1 使用资料的优先级

    1. 固定版本 release notes 确认引入/移除/补丁边界。

    2. 8.0 官方手册解释机制,但剔除 8.0.40 以后内容。

    3. 5.7 release notes 与 mysql-5.7.44 源码确认是否已回补。

    4. mysql-8.0.39 源码确认参数默认/注册入口和实现目录。

    部分历史 5.7 手册 URL 会跳转到新版本,不能只看地址中的 5.7。本文因此优先链接固定 release notes 与 tag;不将跳转后页面冒充 5.7.44 事实。

    24.2 主要入口

    下面附录以名称、版本和入口补齐长尾项目,避免正文为了罗列几百个状态计数器而失去可读性。

    附录 A:固定版本普通内建函数注册表差异

    以下直接比较官方源码两个 tag 的 sql/item_create.cc 中 func_array 名称。它是注册入口集合差,不等于所有 SQL 能力差:窗口/聚合、JSON_TABLE、JSON_VALUE、MEMBER OF、CAST 等可能由语法解析器处理;内部 INTERNAL_* 函数不是承诺给应用使用的公共 API。已存在函数的参数和算法改变也不会出现在集合差中。

    来源:5.7.44 函数注册、8.0.39 函数注册、8.0.39 语法。

    机械提取结果:5.7.44 注册名称 330 个,8.0.39 注册名称 347 个;新增名称 88 个,消失名称 71 个。源码条件编译项也计入,因此不保证每种发行包均可调用。

    A.1 新增空间函数入口

    A.2 新增其他公共/管理函数入口

    新增公共函数的用途补充(JSON、正则、GIS 的逐项说明见正文):

    函数用途与边界
    CURRENT_ROLE返回当前已激活角色;与已被授予的全部角色不同
    ROLES_GRAPHML以 GraphML 表示角色授权关系,受可见性/权限约束
    FORMAT_BYTES将字节数格式化为便于阅读的单位;原 sys schema 中已有类似存储函数
    FORMAT_PICO_TIME将皮秒计时数值格式化;用于 P_S 计时诊断
    PS_CURRENT_THREAD_ID / PS_THREAD_ID获得当前线程或指定连接对应的 P_S 线程 ID,区别于连接 ID
    STATEMENT_DIGEST / STATEMENT_DIGEST_TEXT对给定 SQL 生成指纹散列或规范化文本,不必先在业务表执行该 SQL
    ICU_VERSION观察 ICU 库版本,帮助解释正则/Unicode 行为
    SOURCE_POS_WAITMASTER_POS_WAIT 的新术语接口,不是首次获得等待复制位点能力
    IS_UUID / UUID_TO_BIN / BIN_TO_UUID检查 UUID 格式及转换文本/二进制表示,转换时的 swap 参数必须对应

    依据:Performance Schema 函数、信息函数、加密与压缩/指纹函数、其他函数。

    A.3 新增内部 DD/系统函数入口(不建议业务调用)

    以下辅助函数虽然不以 INTERNAL_ 开头,也主要服务 DD 视图/权限/资源组展示:

    A.4 旧注册表中消失的名称

    消失名称可能代表删除、别名退出或实现入口迁移;不能仅凭集合差证明所有同名 SQL 都不可解析。例如应结合上文删除清单和语法源码核验。新增注册名也不证明其功能第一次出现,别名及内部接口应单独理解。

    附录 B:截至 8.0.39 的选项、系统变量和状态变量生命周期索引

    从官方生命周期页面按 Added/Deprecated/Removed 事件提取名称和版本,仅保留事件版本 ≤8.0.39。这是 8.0 分支事件索引,不是“这些项在 5.7.44 全部不存在”;例如 deadlock_detect、write set、JSON 相关回补必须按正文纠正。新 replica* 名称中也有旧 slave* 别名替换,不能算全新机制。状态量、debug 选项、企业插件变量均可能在内,是否可用以对应发行包和插件为准。

    索引只列名称/版本/官方定义入口,含义与默认值应结合正文和链接查阅;没有复制官方说明原文。

    B.1 新增事件(468 项)

    名称事件版本定义
    Acl_cache_items_count8.0.0官方
    Audit_log_current_size8.0.11官方
    Audit_log_event_max_drop_size8.0.11官方
    Audit_log_events8.0.11官方
    Audit_log_events_filtered8.0.11官方
    Audit_log_events_lost8.0.11官方
    Audit_log_events_written8.0.11官方
    Audit_log_total_size8.0.11官方
    Audit_log_write_waits8.0.11官方
    Authentication_ldap_sasl_supported_methods8.0.21官方
    Caching_sha2_password_rsa_public_key8.0.4官方
    Com_alter_resource_group8.0.3官方
    Com_alter_user_default_role8.0.0官方
    Com_change_replication_source8.0.23官方
    Com_clone8.0.2官方
    Com_create_resource_group8.0.3官方
    Com_create_role8.0.0官方
    Com_drop_resource_group8.0.3官方
    Com_drop_role8.0.0官方
    Com_grant_roles8.0.0官方
    Com_install_component8.0.0官方
    Com_replica_start8.0.22官方
    Com_replica_stop8.0.22官方
    Com_restart8.0.4官方
    Com_revoke_roles8.0.0官方
    Com_set_resource_group8.0.3官方
    Com_set_role8.0.0官方
    Com_show_replica_status8.0.22官方
    Com_show_replicas8.0.22官方
    Com_uninstall_component8.0.0官方
    Compression_algorithm8.0.18官方
    Compression_level8.0.18官方
    Connection_control_delay_generated8.0.1官方
    Current_tls_ca8.0.16官方
    Current_tls_capath8.0.16官方
    Current_tls_cert8.0.16官方
    Current_tls_cipher8.0.16官方
    Current_tls_ciphersuites8.0.16官方
    Current_tls_crl8.0.16官方
    Current_tls_crlpath8.0.16官方
    Current_tls_key8.0.16官方
    Current_tls_version8.0.16官方
    Error_log_buffered_bytes8.0.22官方
    Error_log_buffered_events8.0.22官方
    Error_log_expired_events8.0.22官方
    Error_log_latest_write8.0.22官方
    Firewall_access_denied8.0.11官方
    Firewall_access_granted8.0.11官方
    Firewall_cached_entries8.0.11官方
    Global_connection_memory8.0.28官方
    Innodb_buffer_pool_resize_status_code8.0.31官方
    Innodb_buffer_pool_resize_status_progress8.0.31官方
    Innodb_redo_log_capacity_resized8.0.30官方
    Innodb_redo_log_checkpoint_lsn8.0.30官方
    Innodb_redo_log_current_lsn8.0.30官方
    Innodb_redo_log_enabled8.0.21官方
    Innodb_redo_log_flushed_to_disk_lsn8.0.30官方
    Innodb_redo_log_logical_size8.0.30官方
    Innodb_redo_log_physical_size8.0.30官方
    Innodb_redo_log_read_only8.0.30官方
    Innodb_redo_log_resize_status8.0.30官方
    Innodb_redo_log_uuid8.0.30官方
    Innodb_system_rows_deleted8.0.19官方
    Innodb_system_rows_inserted8.0.19官方
    Innodb_system_rows_read8.0.19官方
    Innodb_system_rows_updated8.0.19官方
    Innodb_undo_tablespaces_active8.0.14官方
    Innodb_undo_tablespaces_explicit8.0.14官方
    Innodb_undo_tablespaces_implicit8.0.14官方
    Innodb_undo_tablespaces_total8.0.14官方
    Mysqlx_bytes_received_compressed_payload8.0.19官方
    Mysqlx_bytes_received_uncompressed_frame8.0.19官方
    Mysqlx_bytes_sent_compressed_payload8.0.19官方
    Mysqlx_bytes_sent_uncompressed_frame8.0.19官方
    Mysqlx_compression_algorithm8.0.20官方
    Mysqlx_compression_level8.0.20官方
    Replica_open_temp_tables8.0.26官方
    Replica_rows_last_search_algorithm_used8.0.26官方
    Resource_group_supported8.0.31官方
    Rpl_semi_sync_replica_status8.0.26官方
    Rpl_semi_sync_source_clients8.0.26官方
    Rpl_semi_sync_source_net_avg_wait_time8.0.26官方
    Rpl_semi_sync_source_net_wait_time8.0.26官方
    Rpl_semi_sync_source_net_waits8.0.26官方
    Rpl_semi_sync_source_no_times8.0.26官方
    Rpl_semi_sync_source_no_tx8.0.26官方
    Rpl_semi_sync_source_status8.0.26官方
    Rpl_semi_sync_source_timefunc_failures8.0.26官方
    Rpl_semi_sync_source_tx_avg_wait_time8.0.26官方
    Rpl_semi_sync_source_tx_wait_time8.0.26官方
    Rpl_semi_sync_source_tx_waits8.0.26官方
    Rpl_semi_sync_source_wait_pos_backtraverse8.0.26官方
    Rpl_semi_sync_source_wait_sessions8.0.26官方
    Rpl_semi_sync_source_yes_tx8.0.26官方
    Secondary_engine_execution_count8.0.13官方
    Ssl_session_cache_timeout8.0.29官方
    Telemetry_traces_supported8.0.33官方
    Tls_library_version8.0.30官方
    activate_all_roles_on_login8.0.2官方
    admin-ssl8.0.21官方
    admin_address8.0.14官方
    admin_port8.0.14官方
    admin_ssl_ca8.0.21官方
    admin_ssl_capath8.0.21官方
    admin_ssl_cert8.0.21官方
    admin_ssl_cipher8.0.21官方
    admin_ssl_crl8.0.21官方
    admin_ssl_crlpath8.0.21官方
    admin_ssl_key8.0.21官方
    admin_tls_ciphersuites8.0.21官方
    admin_tls_version8.0.21官方
    audit-log8.0.11官方
    audit_log_buffer_size8.0.11官方
    audit_log_compression8.0.11官方
    audit_log_connection_policy8.0.11官方
    audit_log_current_session8.0.11官方
    audit_log_database8.0.33官方
    audit_log_disable8.0.28官方
    audit_log_encryption8.0.11官方
    audit_log_exclude_accounts8.0.11官方
    audit_log_file8.0.11官方
    audit_log_filter_id8.0.11官方
    audit_log_flush8.0.11官方
    audit_log_flush_interval_seconds8.0.34官方
    audit_log_format8.0.11官方
    audit_log_format_unix_timestamp8.0.26官方
    audit_log_include_accounts8.0.11官方
    audit_log_max_size8.0.26官方
    audit_log_password_history_keep_days8.0.17官方
    audit_log_policy8.0.11官方
    audit_log_prune_seconds8.0.24官方
    audit_log_read_buffer_size8.0.11官方
    audit_log_rotate_on_size8.0.11官方
    audit_log_statement_policy8.0.11官方
    audit_log_strategy8.0.11官方
    authentication_fido_rp_id8.0.27官方
    authentication_kerberos_service_key_tab8.0.26官方
    authentication_kerberos_service_principal8.0.26官方
    authentication_ldap_sasl_auth_method_name8.0.11官方
    authentication_ldap_sasl_bind_base_dn8.0.11官方
    authentication_ldap_sasl_bind_root_dn8.0.11官方
    authentication_ldap_sasl_bind_root_pwd8.0.11官方
    authentication_ldap_sasl_ca_path8.0.11官方
    authentication_ldap_sasl_group_search_attr8.0.11官方
    authentication_ldap_sasl_group_search_filter8.0.11官方
    authentication_ldap_sasl_init_pool_size8.0.11官方
    authentication_ldap_sasl_log_status8.0.11官方
    authentication_ldap_sasl_max_pool_size8.0.11官方
    authentication_ldap_sasl_referral8.0.20官方
    authentication_ldap_sasl_server_host8.0.11官方
    authentication_ldap_sasl_server_port8.0.11官方
    authentication_ldap_sasl_tls8.0.11官方
    authentication_ldap_sasl_user_search_attr8.0.11官方
    authentication_ldap_simple_auth_method_name8.0.11官方
    authentication_ldap_simple_bind_base_dn8.0.11官方
    authentication_ldap_simple_bind_root_dn8.0.11官方
    authentication_ldap_simple_bind_root_pwd8.0.11官方
    authentication_ldap_simple_ca_path8.0.11官方
    authentication_ldap_simple_group_search_attr8.0.11官方
    authentication_ldap_simple_group_search_filter8.0.11官方
    authentication_ldap_simple_init_pool_size8.0.11官方
    authentication_ldap_simple_log_status8.0.11官方
    authentication_ldap_simple_max_pool_size8.0.11官方
    authentication_ldap_simple_referral8.0.20官方
    authentication_ldap_simple_server_host8.0.11官方
    authentication_ldap_simple_server_port8.0.11官方
    authentication_ldap_simple_tls8.0.11官方
    authentication_ldap_simple_user_search_attr8.0.11官方
    authentication_policy8.0.27官方
    authentication_windows_log_level8.0.11官方
    authentication_windows_use_principal_name8.0.11官方
    binlog_encryption8.0.14官方
    binlog_expire_logs_auto_purge8.0.29官方
    binlog_expire_logs_seconds8.0.1官方
    binlog_rotate_encryption_master_key_at_startup8.0.14官方
    binlog_row_metadata8.0.1官方
    binlog_row_value_options8.0.3官方
    binlog_transaction_compression8.0.20官方
    binlog_transaction_compression_level_zstd8.0.20官方
    binlog_transaction_dependency_history_size8.0.1官方
    binlog_transaction_dependency_tracking8.0.1官方
    build_id8.0.31官方
    caching_sha2_password_auto_generate_rsa_keys8.0.4官方
    caching_sha2_password_digest_rounds8.0.24官方
    caching_sha2_password_private_key_path8.0.3官方
    caching_sha2_password_public_key_path8.0.3官方
    clone_autotune_concurrency8.0.17官方
    clone_block_ddl8.0.27官方
    clone_buffer_size8.0.17官方
    clone_ddl_timeout8.0.17官方
    clone_delay_after_data_drop8.0.29官方
    clone_donor_timeout_after_network_failure8.0.24官方
    clone_enable_compression8.0.17官方
    clone_max_concurrency8.0.17官方
    clone_max_data_bandwidth8.0.17官方
    clone_max_network_bandwidth8.0.17官方
    clone_ssl_ca8.0.14官方
    clone_ssl_cert8.0.14官方
    clone_ssl_key8.0.14官方
    clone_valid_donor_list8.0.17官方
    component_scheduler.enabled8.0.34官方
    connection_control_failed_connections_threshold8.0.1官方
    connection_control_max_connection_delay8.0.1官方
    connection_control_min_connection_delay8.0.1官方
    connection_memory_chunk_size8.0.28官方
    connection_memory_limit8.0.28官方
    create_admin_listener_thread8.0.14官方
    cte_max_recursion_depth8.0.3官方
    ddl-rewriter8.0.16官方
    default_collation_for_utf8mb48.0.11官方
    default_table_encryption8.0.16官方
    dragnet.Status8.0.12官方
    dragnet.log_error_filter_rules8.0.4官方
    early-plugin-load8.0.0官方
    enterprise_encryption.maximum_rsa_key_size8.0.30官方
    enterprise_encryption.rsa_support_legacy_padding8.0.30官方
    explain_format8.0.32官方
    generated_random_password_length8.0.18官方
    global_connection_memory_limit8.0.28官方
    global_connection_memory_tracking8.0.28官方
    group_replication_advertise_recovery_endpoints8.0.21官方
    group_replication_autorejoin_tries8.0.16官方
    group_replication_clone_threshold8.0.17官方
    group_replication_communication_debug_options8.0.3官方
    group_replication_communication_max_message_size8.0.16官方
    group_replication_communication_stack8.0.27官方
    group_replication_consistency8.0.14官方
    group_replication_exit_state_action8.0.12官方
    group_replication_flow_control_hold_percent8.0.2官方
    group_replication_flow_control_max_quota8.0.2官方
    group_replication_flow_control_member_quota_percent8.0.2官方
    group_replication_flow_control_min_quota8.0.2官方
    group_replication_flow_control_min_recovery_quota8.0.2官方
    group_replication_flow_control_period8.0.2官方
    group_replication_flow_control_release_percent8.0.2官方
    group_replication_ip_allowlist8.0.22官方
    group_replication_member_expel_timeout8.0.13官方
    group_replication_member_weight8.0.2官方
    group_replication_message_cache_size8.0.16官方
    group_replication_paxos_single_leader8.0.27官方
    group_replication_recovery_compression_algorithms8.0.18官方
    group_replication_recovery_get_public_key8.0.4官方
    group_replication_recovery_public_key_path8.0.4官方
    group_replication_recovery_tls_ciphersuites8.0.19官方
    group_replication_recovery_tls_version8.0.19官方
    group_replication_recovery_zstd_compression_level8.0.18官方
    group_replication_tls_source8.0.21官方
    group_replication_unreachable_majority_timeout8.0.2官方
    group_replication_view_change_uuid8.0.26官方
    histogram_generation_max_mem_size8.0.2官方
    immediate_server_version8.0.14官方
    information_schema_stats_expiry8.0.3官方
    init_replica8.0.26官方
    innodb-dedicated-server8.0.3官方
    innodb_buffer_pool_debug8.0.0官方
    innodb_buffer_pool_in_core_file8.0.14官方
    innodb_checkpoint_disabled8.0.2官方
    innodb_ddl_buffer_size8.0.27官方
    innodb_ddl_log_crash_reset_debug8.0.3官方
    innodb_ddl_threads8.0.27官方
    innodb_deadlock_detect8.0.0官方
    innodb_directories8.0.4官方
    innodb_doublewrite_batch_size8.0.20官方
    innodb_doublewrite_dir8.0.20官方
    innodb_doublewrite_files8.0.20官方
    innodb_doublewrite_pages8.0.20官方
    innodb_extend_and_initialize8.0.22官方
    innodb_fsync_threshold8.0.13官方
    innodb_idle_flush_pct8.0.18官方
    innodb_log_checkpoint_fuzzy_now8.0.13官方
    innodb_log_spin_cpu_abs_lwm8.0.11官方
    innodb_log_spin_cpu_pct_hwm8.0.11官方
    innodb_log_wait_for_flush_spin_hwm8.0.11官方
    innodb_log_writer_threads8.0.22官方
    innodb_parallel_read_threads8.0.14官方
    innodb_print_ddl_logs8.0.3官方
    innodb_redo_log_archive_dirs8.0.17官方
    innodb_redo_log_capacity8.0.30官方
    innodb_redo_log_encrypt8.0.1官方
    innodb_scan_directories8.0.2官方
    innodb_segment_reserve_factor8.0.26官方
    innodb_spin_wait_pause_multiplier8.0.16官方
    innodb_stats_include_delete_marked8.0.1官方
    innodb_temp_tablespaces_dir8.0.13官方
    innodb_tmpdir8.0.0官方
    innodb_undo_log_encrypt8.0.1官方
    innodb_use_fdatasync8.0.26官方
    innodb_validate_tablespace_paths8.0.21官方
    internal_tmp_mem_storage_engine8.0.2官方
    keyring-migration-destination8.0.4官方
    keyring-migration-host8.0.4官方
    keyring-migration-password8.0.4官方
    keyring-migration-port8.0.4官方
    keyring-migration-socket8.0.4官方
    keyring-migration-source8.0.4官方
    keyring-migration-to-component8.0.24官方
    keyring-migration-user8.0.4官方
    keyring_aws_cmk_id8.0.11官方
    keyring_aws_conf_file8.0.11官方
    keyring_aws_data_file8.0.11官方
    keyring_aws_region8.0.11官方
    keyring_encrypted_file_data8.0.11官方
    keyring_encrypted_file_password8.0.11官方
    keyring_hashicorp_auth_path8.0.18官方
    keyring_hashicorp_ca_path8.0.18官方
    keyring_hashicorp_caching8.0.18官方
    keyring_hashicorp_commit_auth_path8.0.18官方
    keyring_hashicorp_commit_ca_path8.0.18官方
    keyring_hashicorp_commit_caching8.0.18官方
    keyring_hashicorp_commit_role_id8.0.18官方
    keyring_hashicorp_commit_server_url8.0.18官方
    keyring_hashicorp_commit_store_path8.0.18官方
    keyring_hashicorp_role_id8.0.18官方
    keyring_hashicorp_secret_id8.0.18官方
    keyring_hashicorp_server_url8.0.18官方
    keyring_hashicorp_store_path8.0.18官方
    keyring_oci_ca_certificate8.0.22官方
    keyring_oci_compartment8.0.22官方
    keyring_oci_encryption_endpoint8.0.22官方
    keyring_oci_key_file8.0.22官方
    keyring_oci_key_fingerprint8.0.22官方
    keyring_oci_management_endpoint8.0.22官方
    keyring_oci_master_key8.0.22官方
    keyring_oci_secrets_endpoint8.0.22官方
    keyring_oci_tenancy8.0.22官方
    keyring_oci_user8.0.22官方
    keyring_oci_vaults_endpoint8.0.22官方
    keyring_oci_virtual_vault8.0.22官方
    keyring_okv_conf_dir8.0.11官方
    keyring_operations8.0.4官方
    lock_order8.0.17官方
    lock_order_debug_loop8.0.17官方
    lock_order_debug_missing_arc8.0.17官方
    lock_order_debug_missing_key8.0.17官方
    lock_order_debug_missing_unlock8.0.17官方
    lock_order_dependencies8.0.17官方
    lock_order_extra_dependencies8.0.17官方
    lock_order_output_directory8.0.17官方
    lock_order_print_txt8.0.17官方
    lock_order_trace_loop8.0.17官方
    lock_order_trace_missing_arc8.0.17官方
    lock_order_trace_missing_key8.0.17官方
    lock_order_trace_missing_unlock8.0.17官方
    log_error_filter_rules8.0.2官方
    log_error_services8.0.2官方
    log_error_suppression_list8.0.13官方
    log_replica_updates8.0.26官方
    log_slow_extra8.0.14官方
    log_slow_replica_statements8.0.26官方
    mandatory_roles8.0.2官方
    mysql_firewall_mode8.0.11官方
    mysql_firewall_trace8.0.11官方
    mysqlx8.0.11官方
    mysqlx_compression_algorithms8.0.19官方
    mysqlx_deflate_default_compression_level8.0.20官方
    mysqlx_deflate_max_client_compression_level8.0.20官方
    mysqlx_interactive_timeout8.0.4官方
    mysqlx_lz4_default_compression_level8.0.20官方
    mysqlx_lz4_max_client_compression_level8.0.20官方
    mysqlx_read_timeout8.0.4官方
    mysqlx_wait_timeout8.0.4官方
    mysqlx_write_timeout8.0.4官方
    mysqlx_zstd_default_compression_level8.0.20官方
    mysqlx_zstd_max_client_compression_level8.0.20官方
    named_pipe_full_access_group8.0.14官方
    no-dd-upgrade8.0.4官方
    no-monitor8.0.12官方
    original_commit_timestamp8.0.1官方
    original_server_version8.0.14官方
    partial_revokes8.0.16官方
    password_history8.0.3官方
    password_require_current8.0.13官方
    password_reuse_interval8.0.3官方
    performance-schema-consumer-events-statements-cpu8.0.28官方
    performance_schema_max_digest_sample_age8.0.3官方
    performance_schema_show_processlist8.0.22官方
    persist_only_admin_x509_subject8.0.14官方
    persist_sensitive_variables_in_plaintext8.0.29官方
    persisted_globals_load8.0.0官方
    print_identified_with_as_hex8.0.17官方
    protocol_compression_algorithms8.0.18官方
    pseudo_replica_mode8.0.26官方
    regexp_stack_limit8.0.4官方
    regexp_time_limit8.0.4官方
    replica_checkpoint_group8.0.26官方
    replica_checkpoint_period8.0.26官方
    replica_compressed_protocol8.0.26官方
    replica_exec_mode8.0.26官方
    replica_load_tmpdir8.0.26官方
    replica_max_allowed_packet8.0.26官方
    replica_net_timeout8.0.26官方
    replica_parallel_type8.0.26官方
    replica_parallel_workers8.0.26官方
    replica_pending_jobs_size_max8.0.26官方
    replica_preserve_commit_order8.0.26官方
    replica_skip_errors8.0.26官方
    replica_sql_verify_checksum8.0.26官方
    replica_transaction_retries8.0.26官方
    replica_type_conversions8.0.26官方
    replication_optimize_for_static_plugin_config8.0.23官方
    replication_sender_observe_commit_only8.0.23官方
    require_row_format8.0.19官方
    resultset_metadata8.0.3官方
    rewriter_enabled_for_threads_without_privilege_checks8.0.31官方
    rpl_read_size8.0.11官方
    rpl_semi_sync_replica_enabled8.0.26官方
    rpl_semi_sync_replica_trace_level8.0.26官方
    rpl_semi_sync_source_enabled8.0.26官方
    rpl_semi_sync_source_timeout8.0.26官方
    rpl_semi_sync_source_trace_level8.0.26官方
    rpl_semi_sync_source_wait_for_replica_count8.0.26官方
    rpl_semi_sync_source_wait_no_replica8.0.26官方
    rpl_semi_sync_source_wait_point8.0.26官方
    rpl_stop_replica_timeout8.0.26官方
    schema_definition_cache8.0.0官方
    secondary_engine_cost_threshold8.0.16官方
    select_into_buffer_size8.0.22官方
    select_into_disk_sync8.0.22官方
    select_into_disk_sync_delay8.0.22官方
    show-replica-auth-info8.0.26官方
    show_create_table_skip_secondary_engine8.0.18官方
    show_create_table_verbosity8.0.11官方
    show_gipk_in_create_table_and_information_schema8.0.30官方
    skip-replica-start8.0.26官方
    source_verify_checksum8.0.26官方
    sql_generate_invisible_primary_key8.0.30官方
    sql_replica_skip_counter8.0.26官方
    sql_require_primary_key8.0.13官方
    ssl_fips_mode8.0.11官方
    ssl_session_cache_mode8.0.29官方
    ssl_session_cache_timeout8.0.29官方
    sync_source_info8.0.26官方
    syseventlog.facility8.0.13官方
    syseventlog.include_pid8.0.13官方
    syseventlog.tag8.0.13官方
    table_encryption_privilege_check8.0.16官方
    tablespace_definition_cache8.0.0官方
    temptable_max_mmap8.0.23官方
    temptable_max_ram8.0.2官方
    temptable_use_mmap8.0.16官方
    terminology_use_previous8.0.26官方
    thread_pool_algorithm8.0.11官方
    thread_pool_dedicated_listeners8.0.23官方
    thread_pool_high_priority_connection8.0.11官方
    thread_pool_max_active_query_threads8.0.19官方
    thread_pool_max_transactions_limit8.0.23官方
    thread_pool_max_unused_threads8.0.11官方
    thread_pool_prio_kickup_timer8.0.11官方
    thread_pool_query_threads_per_group8.0.31官方
    thread_pool_size8.0.11官方
    thread_pool_stall_limit8.0.11官方
    thread_pool_transaction_delay8.0.31官方
    tls_ciphersuites8.0.16官方
    upgrade8.0.16官方
    use_secondary_engine8.0.13官方
    validate-config8.0.16官方
    validate_password.changed_characters_percentage8.0.34官方
    validate_password.check_user_name8.0.4官方
    validate_password.dictionary_file8.0.4官方
    validate_password.dictionary_file_last_parsed8.0.4官方
    validate_password.dictionary_file_words_count8.0.4官方
    validate_password.length8.0.4官方
    validate_password.mixed_case_count8.0.4官方
    validate_password.number_count8.0.4官方
    validate_password.policy8.0.4官方
    validate_password.special_char_count8.0.4官方
    version_compile_zlib8.0.11官方
    windowing_use_high_precision8.0.2官方

    B.2 弃用事件(134 项)

    名称事件版本定义
    Compression8.0.18官方
    Rpl_semi_sync_master_clients8.0.26官方
    Rpl_semi_sync_master_net_avg_wait_time8.0.26官方
    Rpl_semi_sync_master_net_wait_time8.0.26官方
    Rpl_semi_sync_master_net_waits8.0.26官方
    Rpl_semi_sync_master_no_times8.0.26官方
    Rpl_semi_sync_master_no_tx8.0.26官方
    Rpl_semi_sync_master_status8.0.26官方
    Rpl_semi_sync_master_timefunc_failures8.0.26官方
    Rpl_semi_sync_master_tx_avg_wait_time8.0.26官方
    Rpl_semi_sync_master_tx_wait_time8.0.26官方
    Rpl_semi_sync_master_tx_waits8.0.26官方
    Rpl_semi_sync_master_wait_pos_backtraverse8.0.26官方
    Rpl_semi_sync_master_wait_sessions8.0.26官方
    Rpl_semi_sync_master_yes_tx8.0.26官方
    Rpl_semi_sync_slave_status8.0.26官方
    Rsa_public_key8.0.16官方
    Slave_open_temp_tables8.0.26官方
    Slave_rows_last_search_algorithm_used8.0.26官方
    abort-slave-event-count8.0.29官方
    admin-ssl8.0.26官方
    audit_log_connection_policy8.0.34官方
    audit_log_exclude_accounts8.0.34官方
    audit_log_include_accounts8.0.34官方
    audit_log_policy8.0.34官方
    audit_log_statement_policy8.0.34官方
    authentication_fido_rp_id8.0.35官方
    binlog_format8.0.34官方
    binlog_transaction_dependency_tracking8.0.35官方
    character-set-client-handshake8.0.35官方
    daemon_memcached_enable_binlog8.0.22官方
    daemon_memcached_engine_lib_name8.0.22官方
    daemon_memcached_engine_lib_path8.0.22官方
    daemon_memcached_option8.0.22官方
    daemon_memcached_r_batch_size8.0.22官方
    daemon_memcached_w_batch_size8.0.22官方
    default_authentication_plugin8.0.27官方
    disconnect-slave-event-count8.0.29官方
    expire_logs_days8.0.3官方
    group_replication_ip_whitelist8.0.22官方
    group_replication_primary_member8.0.4官方
    group_replication_recovery_complete_at8.0.34官方
    have_openssl8.0.26官方
    have_ssl8.0.26官方
    init_slave8.0.26官方
    innodb_api_bk_commit_interval8.0.22官方
    innodb_api_disable_rowlock8.0.22官方
    innodb_api_enable_binlog8.0.22官方
    innodb_api_enable_mdl8.0.22官方
    innodb_api_trx_level8.0.22官方
    innodb_log_file_size8.0.30官方
    innodb_log_files_in_group8.0.30官方
    innodb_undo_tablespaces8.0.4官方
    keyring_encrypted_file_data8.0.34官方
    keyring_encrypted_file_password8.0.34官方
    keyring_file_data8.0.34官方
    keyring_oci_ca_certificate8.0.31官方
    keyring_oci_compartment8.0.31官方
    keyring_oci_encryption_endpoint8.0.31官方
    keyring_oci_key_file8.0.31官方
    keyring_oci_key_fingerprint8.0.31官方
    keyring_oci_management_endpoint8.0.31官方
    keyring_oci_master_key8.0.31官方
    keyring_oci_secrets_endpoint8.0.31官方
    keyring_oci_tenancy8.0.31官方
    keyring_oci_user8.0.31官方
    keyring_oci_vaults_endpoint8.0.31官方
    keyring_oci_virtual_vault8.0.31官方
    log_bin_trust_function_creators8.0.34官方
    log_bin_use_v1_row_events8.0.18官方
    log_slave_updates8.0.26官方
    log_slow_slave_statements8.0.26官方
    log_statements_unsafe_for_binlog8.0.34官方
    log_syslog8.0.2官方
    master-info-file8.0.18官方
    master_info_repository8.0.23官方
    master_verify_checksum8.0.26官方
    max_length_for_sort_data8.0.20官方
    myisam_repair_threads8.0.29官方
    mysql_native_password_proxy_users8.0.16官方
    new8.0.35官方
    no-dd-upgrade8.0.16官方
    old8.0.35官方
    old-style-user-limits8.0.30官方
    performance_schema_show_processlist8.0.35官方
    pseudo_slave_mode8.0.26官方
    query_prealloc_size8.0.29官方
    relay_log_info_file8.0.18官方
    relay_log_info_repository8.0.23官方
    replica_parallel_type8.0.29官方
    rpl_semi_sync_master_enabled8.0.26官方
    rpl_semi_sync_master_timeout8.0.26官方
    rpl_semi_sync_master_trace_level8.0.26官方
    rpl_semi_sync_master_wait_for_slave_count8.0.26官方
    rpl_semi_sync_master_wait_point8.0.26官方
    rpl_semi_sync_slave_enabled8.0.26官方
    rpl_semi_sync_slave_trace_level8.0.26官方
    rpl_stop_slave_timeout8.0.26官方
    safe-user-create8.0.11官方
    sha256_password_auto_generate_rsa_keys8.0.16官方
    sha256_password_private_key_path8.0.16官方
    sha256_password_proxy_users8.0.16官方
    sha256_password_public_key_path8.0.16官方
    show-slave-auth-info8.0.26官方
    skip-character-set-client-handshake8.0.35官方
    skip-host-cache8.0.30官方
    skip-new8.0.35官方
    skip-slave-start8.0.26官方
    skip-ssl8.0.26官方
    slave-skip-errors8.0.26官方
    slave_checkpoint_group8.0.26官方
    slave_checkpoint_period8.0.26官方
    slave_compressed_protocol8.0.18官方
    slave_exec_mode8.0.26官方
    slave_load_tmpdir8.0.26官方
    slave_max_allowed_packet8.0.26官方
    slave_net_timeout8.0.26官方
    slave_parallel_type8.0.26官方
    slave_parallel_workers8.0.26官方
    slave_pending_jobs_size_max8.0.26官方
    slave_preserve_commit_order8.0.26官方
    slave_rows_search_algorithms8.0.18官方
    slave_sql_verify_checksum8.0.26官方
    slave_transaction_retries8.0.26官方
    slave_type_conversions8.0.26官方
    sql_slave_skip_counter8.0.26官方
    ssl8.0.26官方
    ssl_fips_mode8.0.34官方
    symbolic-links8.0.2官方
    sync_master_info8.0.26官方
    sync_relay_log_info8.0.34官方
    temptable_use_mmap8.0.26官方
    transaction_prealloc_size8.0.29官方
    transaction_write_set_extraction8.0.26官方

    B.3 删除事件(63 项)

    名称事件版本定义
    Com_alter_db_upgrade8.0.0官方
    Innodb_available_undo_logs8.0.2官方
    Qcache_free_blocks8.0.3官方
    Qcache_free_memory8.0.3官方
    Qcache_hits8.0.3官方
    Qcache_inserts8.0.3官方
    Qcache_lowmem_prunes8.0.3官方
    Qcache_not_cached8.0.3官方
    Qcache_queries_in_cache8.0.3官方
    Qcache_total_blocks8.0.3官方
    Slave_heartbeat_period8.0.1官方
    Slave_last_heartbeat8.0.1官方
    Slave_received_heartbeats8.0.1官方
    Slave_retried_transactions8.0.1官方
    Slave_running8.0.1官方
    bootstrap8.0.0官方
    date_format8.0.3官方
    datetime_format8.0.3官方
    des-key-file8.0.3官方
    group_replication_allow_local_disjoint_gtids_join8.0.4官方
    have_crypt8.0.3官方
    ignore-db-dir8.0.0官方
    ignore_builtin_innodb8.0.3官方
    ignore_db_dirs8.0.0官方
    innodb_checksums8.0.0官方
    innodb_disable_resize_buffer_pool_debug8.0.0官方
    innodb_file_format8.0.0官方
    innodb_file_format_check8.0.0官方
    innodb_file_format_max8.0.0官方
    innodb_large_prefix8.0.0官方
    innodb_locks_unsafe_for_binlog8.0.0官方
    innodb_scan_directories8.0.4官方
    innodb_stats_sample_pages8.0.0官方
    innodb_support_xa8.0.0官方
    innodb_undo_logs8.0.2官方
    internal_tmp_disk_storage_engine8.0.16官方
    log-warnings8.0.3官方
    log_builtin_as_identified_by_password8.0.11官方
    log_error_filter_rules8.0.4官方
    log_syslog8.0.13官方
    log_syslog_facility8.0.13官方
    log_syslog_include_pid8.0.13官方
    log_syslog_tag8.0.13官方
    max_tmp_tables8.0.3官方
    metadata_locks_cache_size8.0.13官方
    metadata_locks_hash_instances8.0.13官方
    multi_range_count8.0.3官方
    myisam_repair_threads8.0.30官方
    old_passwords8.0.11官方
    partition8.0.0官方
    query_cache_limit8.0.3官方
    query_cache_min_res_unit8.0.3官方
    query_cache_size8.0.3官方
    query_cache_type8.0.3官方
    query_cache_wlock_invalidate8.0.3官方
    secure_auth8.0.3官方
    show_compatibility_568.0.1官方
    skip-partition8.0.0官方
    sync_frm8.0.0官方
    temp-pool8.0.1官方
    time_format8.0.3官方
    tx_isolation8.0.3官方
    tx_read_only8.0.3官方

    附录 C:逐版本官方发布说明入口

    开发里程碑和所有可取得的 8.0.11~8.0.39 发布说明均列出。没有发布说明的跳号不构造虚假链接。数量是页面主变更列表中的条目数,包含功能、构建、弃用、安全和 Bug 分类;不是独立功能数量,也不是与 5.7.44 的净差异数量。需要追究某个补丁的每一条行为时从相应原文进入。

    版本官方日期/标题主变更条目数
    8.0.0Changes in MySQL 8.0.0 (2016-09-12, Development Milestone)250
    8.0.1Changes in MySQL 8.0.1 (2017-04-10, Development Milestone)458
    8.0.2Changes in MySQL 8.0.2 (2017-07-17, Development Milestone)234
    8.0.3Changes in MySQL 8.0.3 (2017-09-21, Release Candidate)205
    8.0.4Changes in MySQL 8.0.4 (2018-01-23, Release Candidate)372
    8.0.11Changes in MySQL 8.0.11 (2018-04-19)301
    8.0.12Changes in MySQL 8.0.12 (2018-07-27)189
    8.0.13Changes in MySQL 8.0.13 (2018-10-22)263
    8.0.14Changes in MySQL 8.0.14 (2019-01-21)224
    8.0.15Changes in MySQL 8.0.15 (2019-02-01)3
    8.0.16Changes in MySQL 8.0.16 (2019-04-25)269
    8.0.17Changes in MySQL 8.0.17 (2019-07-22)253
    8.0.18Changes in MySQL 8.0.18 (2019-10-14)230
    8.0.19Changes in MySQL 8.0.19 (2020-01-13)211
    8.0.20Changes in MySQL 8.0.20 (2020-04-27)187
    8.0.21Changes in MySQL 8.0.21 (2020-07-13)193
    8.0.22Changes in MySQL 8.0.22 (2020-10-19)174
    8.0.23Changes in MySQL 8.0.23 (2021-01-18)163
    8.0.24Changes in MySQL 8.0.24 (2021-04-20)174
    8.0.25Changes in MySQL 8.0.25 (2021-05-11)4
    8.0.26Changes in MySQL 8.0.26 (2021-07-20)192
    8.0.27Changes in MySQL 8.0.27 (2021-10-19)180
    8.0.28Changes in MySQL 8.0.28 (2022-01-18)156
    8.0.29Changes in MySQL 8.0.29 (2022-04-26)148
    8.0.30Changes in MySQL 8.0.30 (2022-07-26)132
    8.0.31Changes in MySQL 8.0.31 (2022-10-11)119
    8.0.32Changes in MySQL 8.0.32 (2023-01-17)95
    8.0.33Changes in MySQL 8.0.33 (2023-04-18)103
    8.0.34Changes in MySQL 8.0.34 (2023-07-18)98
    8.0.35Changes in MySQL 8.0.35 (2023-10-25)51
    8.0.36Changes in MySQL 8.0.36 (2024-01-16)47
    8.0.37Changes in MySQL 8.0.37 (2024-04-30)68
    8.0.38Changes in MySQL 8.0.38 (2024-07-01)50
    8.0.39Changes in MySQL 8.0.39 (2024-07-23)3

    补充对照:5.7.44 最终发布说明。其中与 8.0 共同修复的事项应从净差异中剔除,不能把所有 8.0 Bug Fixed 都算作升级新增。

    附录 D:本次文档核验记录