文档规模与导航:正文含 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:本次文档核验记录
x5.7.44(简化)连接/认证 -> SQL 解析 -> [Query Cache 路径,默认关闭] -> 优化器 -> 传统执行器 -> Handler -> InnoDB元数据:.frm 等文件 + mysql 系统表 + InnoDB 自有字典内部临时表:MEMORY -> 磁盘临时表日志:事务线程参与 redo 写出/刷盘协调 + 后台线程
8.0.39(简化)连接/认证缓存/TLS -> SQL 解析与解析期改写 -> 优化器 -> 迭代器执行器 -> Handler -> InnoDB -> Hash Join / 窗口 / 物化等算子元数据:统一事务性 DD + 共享 DD cache + SDI内部临时表:TempTable RAM -> mmap 或 InnoDB 磁盘表日志:并发 redo 生产 + 专职 writer/flusher/notifier 等协作图中箭头是职责关系,不是把每个条件分支画出的源码调用图。
| 层次 | 主要变化 | 没有发生的变化 |
|---|---|---|
| 接入层 | 默认认证、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 迭代器源码。
| 编号 | 5.7.44 | 8.0.39 | 实现与影响 |
|---|---|---|---|
| DD-01 | Server 层 .frm 等与引擎字典分离 | 统一事务性 Data Dictionary | 表、列、索引、表空间、存储程序等对象采用统一模型;减少文件与引擎元数据不一致窗口。 |
| DD-02 | 元数据文件和不同系统表分散 | DD 表位于 InnoDB,系统表集中于 mysql.ibd 等受管理结构 | DD 更新可使用 InnoDB 事务与恢复机制;不能复制 .frm 恢复表定义。 |
| DD-03 | InnoDB 自有内部字典与 SQL 字典并存 | InnoDB 接入 Server DD | Handler/引擎私有属性保存在新字典框架中;不再以旧 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-08 | mysql.proc、mysql.event 等旧接口 | 存储程序、事件元数据迁入 DD | 旧脚本直接读取/修改系统表需迁移到正式 SQL/I_S 接口。 |
| DD-09 | 表统计查询频繁访问引擎 | information_schema_stats_expiry 缓存统计,默认 86400 秒 | TABLES/STATISTICS 中某些动态统计可能不是即时值;需要实时值时可设置为 0。 |
8.0 将支持的 DDL 的 DD 更新、引擎操作、binlog 写入作为协调的原子操作。以 InnoDB 为例,DDL 日志跟踪文件创建、删除、重命名等,在提交后完成清理,在崩溃后执行必要恢复。5.7 在某些故障点可能留下文件、字典、binlog 状态不一致的问题。
| 编号 | 变化 | 需要保留的边界 |
|---|---|---|
| DD-10 | 支持的 CREATE/ALTER/DROP/TRUNCATE/RENAME 等具备原子性 | 要看引擎和具体语句支持;混合引擎操作不能一概保证。 |
| DD-11 | 多账户管理语句因授权表事务化具有更一致的全成或全败语义 | 不等于允许用户用普通事务自由回滚账户变更。 |
| DD-12 | 8.0.21 起,支持原子 DDL 的 CREATE TABLE ... SELECT 在 ROW binlog 下按单事务记录 | 解决旧分两笔记录的复制/GTID 问题;不是所有引擎都获得此保证。 |
| DD-13 | 崩溃恢复可以处理 DDL 操作残留 | 原子 DDL ≠ Online DDL ≠ Instant DDL;三者分别讨论失败语义、并发和数据重写。 |
| DD-14 | 8.0.16 起服务器执行系统升级任务 | mysql_upgrade 不再承担以前的升级动作;升级控制转向 --upgrade。 |
DDL 通常仍隐式提交。下面这段代码不能据此被解释为可回滚建表:
xxxxxxxxxxSTART TRANSACTION;CREATE TABLE example_ddl (id BIGINT PRIMARY KEY);ROLLBACK; -- 不会因为 8.0 有 atomic DDL 就撤销上述 CREATE TABLE依据:Atomic DDL、升级所做的操作。
| 编号 | 变化/版本 | 5.7.44 → 8.0.39 的具体差异与代价 |
|---|---|---|
| NET-01 | 默认认证插件;8.0 GA | mysql_native_password → caching_sha2_password。新建账号默认变化;升级已有账号不会自动重新哈希其密码。 |
| NET-02 | 认证快路径 | caching_sha2 在服务端保存认证缓存;命中时减少完整认证成本,重启/密码变更等可能使完整认证再次发生。不是缓存明文密码。 |
| NET-03 | 完整认证通道 | 完整认证要求安全连接,或使用 RSA 密码交换;老驱动可能不认识插件或不支持所需流程。不能只看 TCP 端口是否可连接。 |
| NET-04 | TLS 1.3;8.0.16 | 在满足 OpenSSL/客户端条件时支持 TLS 1.3;协议能力取决于二进制构建和协商双方。 |
| NET-05 | TLS 旧协议清退;8.0.28 | TLS 1.0/1.1 不再支持;5.7.44 上的兼容选项不能原样保留。 |
| NET-06 | 在线 TLS 重载;8.0.16 | ALTER INSTANCE RELOAD TLS 可更新新连接的 TLS 上下文;已经建立的会话不会自动换证书/重新握手。 |
| NET-07 | SSL session reuse;8.0.29 | 服务端缓存 TLS 会话,配合客户端复用降低重复建连的握手成本;ssl_session_cache_* 控制,不等于连接池复用。 |
| NET-08 | 管理网络接口;8.0.14 | admin_address/admin_port 提供管理入口,默认端口 33062,必须配置地址才使用;可在普通连接耗尽时用于管理。 |
| NET-09 | 管理连接线程控制 | create_admin_listener_thread 可配置独立监听线程;管理账号需要相应权限。管理接口并非默认向公网开启。 |
| NET-10 | 多监听地址;8.0.13 | bind_address 支持地址列表,改善多网卡场景。 |
| NET-11 | 网络命名空间;8.0.22 | 支持的 Linux 环境可指定网络 namespace,适合网络隔离;不是所有 OS 通用功能。 |
| NET-12 | 压缩协商;8.0.18 | 在原 zlib 能力上新增 zstd 与算法选择、压缩级别;连接端可控制允许算法,减少带宽但消耗 CPU。 |
| NET-13 | 复制连接压缩配置 | source/replica 连接也能选择算法和级别;与 binlog 事务压缩是两个独立层次。 |
| NET-14 | X 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。
| 编号 | 能力 | 具体变化 |
|---|---|---|
| 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.16 | SYSTEM_USER 区分 system/regular 账户类别,限制普通管理者修改系统账号。不是 Unix 的 root 概念。 |
| SEC-05 | 部分撤权;8.0.16 | partial_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.14 | RETAIN CURRENT PASSWORD、DISCARD OLD PASSWORD 支持应用分批轮换凭据。 |
| SEC-11 | 随机密码;8.0.18 | 账户管理语句可生成随机密码,长度参数可配置。 |
| SEC-12 | 登录失败临时锁;8.0.19 | FAILED_LOGIN_ATTEMPTS、PASSWORD_LOCK_TIME,与手动 ACCOUNT LOCK、Connection Control 延迟是不同机制。 |
| SEC-13 | 账户属性;8.0.21 | COMMENT/ATTRIBUTE 为账户附加说明和 JSON 属性;不是权限本身。 |
| SEC-14 | 多因素认证;8.0.27 | 一个账户最多三种认证因子,由 authentication_policy 管理;可用服务端插件受发行版约束。 |
| SEC-15 | FIDO/LDAP/Kerberos | 企业认证插件扩展;FIDO 服务端为企业版,不能写成 Community 全部可用。 |
| SEC-16 | password validation 组件 | 校验插件之外增加组件形态及策略扩展;插件名和组件变量名不同,迁移配置需重核。 |
| SEC-17 | 静态加密范围 | 从已有表空间加密扩展到通用表空间、redo、undo、mysql 系统空间及加密表的 doublewrite 数据。 |
| SEC-18 | 加密默认与权限;8.0.16 | default_table_encryption、schema 默认加密、table_encryption_privilege_check、TABLE_ENCRYPTION_ADMIN。 |
| SEC-19 | Keyring 组件 | 支持更早加载的组件与 manifest,适应启动时 DD/日志解密;5.7 的插件配置不能机械替代。 |
| SEC-20 | REVOKE 容错语法;8.0.30 | IF EXISTS、IGNORE UNKNOWN USER 支持以警告处理部分不存在对象。 |
| SEC-21 | SQL 重写豁免;8.0.31 | SKIP_QUERY_REWRITE 及复制应用线程相关开关,避免管理/复制语句被 Rewriter 意外改写。 |
| SEC-22 | 弃用而非删除 | mysql_native_password 自 8.0.34 弃用,但 8.0.39 尚未像 9.0 一样删除;不要把 8.4 默认禁用行为写进本比较。 |
依据:角色、权限、账户类别、部分撤权、密码管理、MFA、InnoDB 加密。
| 编号 | 新增/增强 | 版本与细节 |
|---|---|---|
| SQL-01 | 非递归 CTE | 8.0 GA;WITH 命名查询块,优化器可以合并或物化,不保证总是临时表。 |
| SQL-02 | 递归 CTE | 8.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-07 | LATERAL 派生表 | 8.0.14;FROM 中的派生表可依赖前面表的列,适合逐行计算/相关 Top-N。 |
| SQL-08 | CHECK 真正执行 | 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-10 | RENAME COLUMN | 不用像 CHANGE 一样重复整个列定义;InnoDB INSTANT 支持范围在后续版本扩展。 |
| SQL-11 | 不可见列 | 8.0.23;不在 SELECT */隐式插入列列表中出现,仍可显式读写;不等于访问权限控制。 |
| SQL-12 | 自动不可见主键 GIPK | 8.0.30;开启 sql_generate_invisible_primary_key 后为缺少显式 PK 的新 InnoDB 表生成主键列;默认 OFF。 |
| SQL-13 | GIPK 与隐藏 row_id | GIPK 是真实 SQL 列及索引;5.7 InnoDB 自动使用的内部隐藏 row_id 并不是 GIPK。 |
| SQL-14 | TABLE 与 VALUES ROW(...) | 8.0.19;可作为查询/集合操作/部分子查询的数据来源。 |
| SQL-15 | INTERSECT/EXCEPT | 8.0.31;支持 ALL/DISTINCT,默认 DISTINCT;注意 INTERSECT 优先级与括号。 |
| SQL-16 | 括号查询表达式 | 8.0 后续版本扩展;8.0.31 支持更深嵌套和规范化 LIMIT/ORDER BY 语义。 |
| SQL-17 | INSERT 新行别名 | 8.0.19;ON DUPLICATE KEY UPDATE 可引用新行/列别名;旧 VALUES(col) 用法 8.0.20 起弃用。 |
| SQL-18 | 单表 DELETE 表别名 | 8.0.16 支持;不是多表 DELETE 新增。 |
| SQL-19 | 存储程序 IF NOT EXISTS | 8.0.29 扩展 CREATE FUNCTION/PROCEDURE/TRIGGER,便于幂等部署。 |
| SQL-20 | 行锁语法 | FOR SHARE、OF table、NOWAIT、SKIP LOCKED;详见事务章节。 |
依据:CTE、窗口函数、窗口限制、LATERAL、CHECK、默认表达式、不可见列、GIPK、INTERSECT、EXCEPT。
窗口函数仍有限制,例如不支持通用嵌套窗口函数、DISTINCT 聚合窗口等;不要把“新增窗口函数”理解为 SQL 标准全部窗口特性。
| 编号 | 变化 | 说明 |
|---|---|---|
| JSON-01 | JSON 原地局部更新 | 8.0.2;满足条件的 JSON_SET/REPLACE/REMOVE 可避免整文档重写。是否可原地更新取决于已有值、可用空间和表达式形式。 |
| JSON-02 | 局部更新 binlog | binlog_row_value_options=PARTIAL_JSON 可在 ROW 格式记录差异;与存储层局部修改是两个开关/判断层次。 |
| JSON-03 | JSON_STORAGE_FREE | 查看局部修改后可复用空间;不能把 5.7.22 已有的 JSON_STORAGE_SIZE 一并误标新增。 |
| JSON-04 | JSON 路径扩展 | 数组范围、last、相对尾部定位。 |
| JSON-05 | JSON_TABLE | 8.0.4;JSON 转关系行列,支持 NESTED PATH、FOR ORDINALITY、EXISTS、ON EMPTY/ON ERROR。 |
| JSON-06 | 重复键规范化 | 与 5.7 的首次重复键取值策略不同,8.0 采用最后重复键获胜;会改变导入/构造结果。 |
| JSON-07 | 排序键变长 | JSON 排序不再固定浪费大块排序键空间;改善排序缓存利用率和比较成本。 |
| JSON-08 | JSON Schema | 8.0.17;JSON_SCHEMA_VALID、JSON_SCHEMA_VALIDATION_REPORT,按支持的 Draft 4 范围校验,不是完整支持任意最新 JSON Schema。 |
| JSON-09 | JSON_OVERLAPS | 8.0.17;检测共同数组元素或对象键值,区别于 JSON_CONTAINS。 |
| JSON-10 | MEMBER OF | 8.0.17;JSON 数组成员判断,可与多值索引配合;SQL 类型转换语义必须注意。 |
| JSON-11 | JSON_VALUE | 8.0.21;标量提取、RETURNING 类型、ON EMPTY/ERROR,减少多层提取与 CAST 表达式。 |
| JSON-12 | JSON 聚合 OVER | 8.0.14;聚合函数本身 5.7.22 已有,新增的是窗口执行形式。 |
| JSON-13 | JSON_TABLE 行为收敛 | 8.0.20/21 等调整错误/空值处理以贴近标准;JSON null 与 SQL NULL 不能混为一谈。 |
| JSON-14 | JSON 布尔上下文 | 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 回补。
| 编号 | 变化 | 实现/兼容性 |
|---|---|---|
| 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-04 | UUID 二进制辅助 | UUID_TO_BIN、BIN_TO_UUID、IS_UUID;可选择重排时间字段,不能据此声称随机 UUID 自动变顺序。 |
| FUNC-05 | 二进制字符串位运算 | 支持超过 BIGINT 64 位范围的二进制字符串位运算;操作数类型会决定二进制或数字执行路径。 |
| FUNC-06 | GROUPING 与 ROLLUP | GROUPING() 区分汇总行产生的 NULL 和原始 NULL;GROUP BY WITH ROLLUP 后续支持范围增强。 |
| FUNC-07 | 时间偏移字面量;8.0.19 | TIMESTAMP/DATETIME 输入可带时区偏移;DATETIME 没有因此变成“保存时区名称”的数据类型。 |
| FUNC-08 | 时间精度处理 | TIME_TRUNCATE_FRACTIONAL SQL mode 可选择截断小数秒;要评估旧默认四舍五入行为。 |
| FUNC-09 | 显式类型转换扩展 | CAST/CONVERT 的支持类型与内部 cast 注入扩展;EXPLAIN 更容易显示隐式转换。 |
| FUNC-10 | 预处理参数类型推导;8.0.22 | 参数标记类型的确定/重准备规则改变,提高一致性但可能暴露以前依赖模糊转换的应用。 |
| FUNC-11 | TIMESTAMP 默认语义 | 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。
| 编号 | 变化 | 说明 |
|---|---|---|
| GIS-01 | SRS 字典 | 管理空间参考系统,区分地理与笛卡尔坐标系;不再把所有几何计算都当平面坐标。 |
| GIS-02 | 列 SRID 限制 | 几何列可声明 SRID,插入和计算进行兼容性检查;优化器对空间索引使用有相应约束。 |
| GIS-03 | 地理计算增强 | 经纬度、椭球地理距离/面积等函数支持范围扩展;轴顺序与单位需核对。 |
| GIS-04 | ST_Transform | 支持坐标参考系转换;8.0.30/32 扩展投影/笛卡尔 SRS 支持,不是任意投影全部支持。 |
| GIS-05 | ST_Longitude/Latitude、ST_SwapXY 等 | 提供更明确的地理坐标访问和轴处理。 |
| GIS-06 | 距离度量和线插值 | 后续增加 ST_FrechetDistance、ST_HausdorffDistance、ST_LineInterpolatePoint(s)、ST_PointAtDistance 等。 |
| GIS-07 | 空间计算兼容性 | 无效几何、坐标范围、SRID 不匹配错误更严格;5.7 可运行的数据/表达式可能需要清洗。 |
| 编号 | 5.7.44 默认/能力 | 8.0.39 默认/能力 | 影响 |
|---|---|---|---|
| CHAR-01 | character_set_server=latin1 | utf8mb4 | 不指定字符集的新对象默认改变;已有列不自动转换。 |
| CHAR-02 | collation_server=latin1_swedish_ci | utf8mb4_0900_ai_ci | 比较、排序、去重和唯一约束可能变化;迁移要校验数据语义。 |
| CHAR-03 | 已有 utf8mb4、Unicode 旧规则 | UCA 9.0 系列及更多语言专属规则 | 支持更全面的 Unicode 排序;不是 UTF-8 编码本身换了。 |
| CHAR-04 | 多数旧规则 PAD SPACE | 新 0900 规则 NO PAD | 尾随空格参与比较的方式变化,'a' 与 'a ' 可能不再相等。 |
| CHAR-05 | utf8 通常指三字节 utf8mb3 | 明确弃用 utf8mb3,推荐 utf8mb4 | 8.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 字符集、排序规则属性。
| 索引 | 5.7.44 | 8.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 索引。 |
| 编号 | 变化 | 具体边界 |
|---|---|---|
| IDX-01 | 不可见索引 | 默认优化器不选它,但 DML 仍维护;用于评估删索引,不能用来测“真正删掉后的写性能”。 |
| IDX-02 | 可试用不可见索引 | use_invisible_indexes 开关可让测试会话使用;主键不能变不可见。 |
| IDX-03 | 降序索引限制 | InnoDB 支持;包含降序列的二级索引不支持 change buffering;不能只算读取收益。 |
| IDX-04 | 函数 key part | 双括号语法;内部隐藏生成列会计入相关列数限制;主键/外键及表达式有约束。 |
| IDX-05 | JSON 标量索引 | 5.7 已可用生成列;8.0 的变化是函数索引及 JSON_VALUE 等使写法更直接。 |
| IDX-06 | 多值索引优化 | MEMBER OF、JSON_CONTAINS、JSON_OVERLAPS 在满足条件时可使用;写入数组需要维护多个条目。 |
| IDX-07 | 多值索引限制 | 不支持像普通索引那样的覆盖/有序范围扫描;一个索引只能有一个多值 key part;不能当作通用数组列类型。 |
| IDX-08 | 空间索引语义增强 | SRS-aware 范围计算和 SRID 限制影响是否使用空间索引。 |
5.7 的索引基数统计不能充分描述非索引列的值分布。8.0 新增列直方图,主要帮助优化器估计过滤率、连接顺序和中间结果规模。
| 编号 | 项目 | 实现/限制 |
|---|---|---|
| STAT-01 | 持久化列统计 | DD 保存,INFORMATION_SCHEMA.COLUMN_STATISTICS 暴露 JSON 描述;跨重启保留。 |
| STAT-02 | Singleton | 不同值较少时,一值一桶;记录累计频率。 |
| STAT-03 | Equi-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.19 | InnoDB 支持更高效的采样路径,减少构建统计的成本。 |
| STAT-09 | 导入直方图;8.0.31 | USING DATA 'json' 可以导入人工或其他实例生成的统计;适合复制计划环境。 |
| STAT-10 | 过期风险 | 数据分布改变不会自动保持 histogram 新鲜;定期维护应基于业务变化。 |
依据:优化器统计、ANALYZE TABLE。
| 编号 | 新增/增强 | 起始边界及含义 |
|---|---|---|
| OPT-01 | Skip Scan | 8.0.13;在满足条件时枚举复合索引前导列值并扫描后续范围。不等于任意 WHERE 都能违反最左前缀直接定位。 |
| OPT-02 | 直方图选择率 | 改进非索引列倾斜分布估计,可能改变 join order/access path。 |
| OPT-03 | DESC/函数/多值索引访问 | 新索引结构增加候选路径;表达式必须满足匹配与类型规则。 |
| OPT-04 | EXISTS 半连接 | 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-09 | GROUP BY 派生下推 | 分组键条件可下推 WHERE,聚合值条件可下推 HAVING;必须保持语义。 |
| OPT-10 | UNION 派生下推 | 8.0.29 扩展到符合条件的 UNION;并非所有递归/非确定性场景都允许。 |
| OPT-11 | CTE 合并/物化 | 非递归 CTE 可优化;重复引用物化结果可共享,必要时为访问创建临时索引。 |
| OPT-12 | 常量条件提前化简 | 8.0.14;在准备阶段移除恒假/恒真项,给 outer join 简化更早创造机会。 |
| OPT-13 | 常量折叠 | 8.0.16;按列类型边界将不可能范围化简;NULL 列不能粗暴变成 WHERE TRUE。 |
| OPT-14 | GROUP BY 不再隐式排序 | 8.0 不保证按分组列排序;要有稳定顺序必须显式 ORDER BY。 |
| OPT-15 | ORDER BY LIMIT 策略可控 | 8.0.21 的 prefer_ordering_index 可关闭偏好有序索引的启发式;解决部分“小 LIMIT 反而扫描很多行”。 |
| OPT-16 | Hash Join 成本与路径 | 8.0.18 起新增;8.0.20 扩展适用 join 类型,不意味永远优先于索引 NLJ。 |
| OPT-17 | SET_VAR hint | 单语句调整允许 hint 的变量,不改变后续语句会话设置;不支持所有变量。 |
| OPT-18 | 连接顺序 hints | JOIN_ORDER、JOIN_PREFIX、JOIN_SUFFIX、JOIN_FIXED_ORDER 等让计划干预更细。 |
| OPT-19 | 索引级 hints;8.0.20 | INDEX/JOIN_INDEX/GROUP_INDEX/ORDER_INDEX 与各 NO_* 形式,作用于指定用途。 |
| OPT-20 | 条件下推 hints | DERIVED_CONDITION_PUSHDOWN/NO_* 等用于排查计划回归。 |
| OPT-21 | 覆盖索引/ICP/MRR/BKA | 5.7 已有;8.0 为新执行器重构适配与修复,不能笼统标新增。 |
| OPT-22 | 优化器 trace/成本模型 | 5.7 已有;8.0 扩展记录新变换,保留诊断与成本调节机制。 |
| OPT-23 | Hypergraph 边界 | 源码/开关中出现 hypergraph 不代表标准 Community 8.0.39 默认生产优化器已全面替换。不能把 HeatWave 行为写进本文件。 |
依据:范围优化/Skip Scan、半连接与反连接、派生条件下推、派生表优化、优化器开关、Hints。
8.0.18 引入面向新算子的迭代器执行基础,8.0.20 完成重要的旧执行器替换。执行计划由扫描、过滤、连接、排序、聚合、物化、Limit 等迭代器组合,父节点向子节点请求数据。统一接口更容易包装每个算子计时,也更容易接入 Hash Join。
这不表示 InnoDB 的页读取接口变成列存,更不表示向量化批处理或跨节点 MPP 已加入普通 Community 查询路径。Handler 存储引擎边界依然存在。
| 编号 | 变化 | 内存/CPU/I/O 影响 |
|---|---|---|
| EXEC-01 | Hash Join;8.0.18 | build 一侧建 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-04 | Join buffer 与落盘 | join_buffer_size 控制 hash join 可用内存,不足可分区写磁盘;不是结果集超内存就一律失败。 |
| EXEC-05 | hash table 优化;8.0.23 | 改善对齐、相同 key、扩容内存释放,提升 join buffer 有效利用率。 |
| EXEC-06 | 窗口执行 | 可能需要排序、缓冲分区/帧和临时表,特定窗口可共用排序;新增 SQL 语法也意味着新增内存压力。 |
| EXEC-07 | 递归执行 | 递归 CTE 通过工作结果反复扩展,受深度/查询资源限制,不是存储程序递归。 |
| EXEC-08 | filesort 内存按需增长;8.0.12 | 不再总在起点一次性拿满 sort_buffer_size;大量并发小排序的内存特性改变。 |
| EXEC-09 | JSON sort key 优化 | 可变长度表示减少浪费,提高内存容纳量。 |
| EXEC-10 | EXPLAIN FORMAT=TREE;8.0.16 | 更直观表示算子树,可展示 Hash Join 等新路径。 |
| EXEC-11 | EXPLAIN ANALYZE;8.0.18 | 真正运行被分析语句,给出 actual time/rows/loops;不是只估算。 |
| EXEC-12 | explain_format;8.0.32 | 配置未指定 FORMAT 时的默认输出;8.0.39 的 EXPLAIN ANALYZE 不能按新版本能力假定支持任意格式。 |
EXPLAIN ANALYZE 的节点时间通常包含下游子节点耗时;不能将所有节点耗时相加当总耗时,多次 loops 的时间也要按文档解释。它会消耗真实查询资源,不能当成纯解析操作。
依据:Hash Join、ORDER BY 优化、EXPLAIN。
| 区域 | 5.7.44 | 8.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 buffer | NLJ/BNL/BKA 路径 | Hash Join 哈希表及其磁盘分区,内存按算子/计划考虑 |
| Sort buffer | 原有 filesort 缓冲 | 按需增长等优化;大排序仍可能多趟归并落盘 |
| 认证/TLS 缓存 | 原认证/TLS机制 | caching_sha2 认证缓存、受支持的 SSL session reuse 缓存 |
| P_S memory | 已有内存 instrumentation | 覆盖更多模块、语句峰值、连接计量;依然不等于所有 malloc 都可准确归因 |
| Binlog/复制缓存 | 事务缓存、worker 队列已有 | 压缩、并行 apply 等引入额外工作内存 |
| 后台线程栈 | 引擎、复制等线程已有 | 新增 redo/DDL/并行扫描/调度线程,栈和调度成本也需考虑 |
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_ram | TempTable 共享 RAM 预算 | 默认 1 GiB;不是每连接各有 1 GiB |
temptable_max_mmap | TempTable mmap 文件预算 | 默认 1 GiB;8.0.23 新增,0 表示不用 mmap |
temptable_use_mmap | 选择溢出路径的旧开关 | 8.0.16 引入、8.0.26 弃用;8.0.39 尚存在 |
max_heap_table_size | MEMORY 表限制 | 选择 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 源码、系统变量。
8.0.13 起,InnoDB 会话临时空间从共享池分配,通常位于 #innodb_temp。会话断开后空间截断并归还池,改善 5.7 全局 ibtmp1 增长后不能按同样方式回收的问题。ibtmp1 仍存在,主要承担用户临时表的回滚段等职责;不是被删除。
TempTable mmap 文件、InnoDB 会话临时表空间、用户 CREATE TEMPORARY TABLE 是不同对象。Created_tmp_disk_tables 也不能完整反映 mmap 溢出的空间使用。
依据:InnoDB 临时空间、会话临时空间表。
8.0.28 新增 connection_memory_limit、global_connection_memory_limit、global_connection_memory_tracking、connection_memory_chunk_size。它们针对被计量的连接内存,Buffer Pool 不在全局连接限额中,系统/管理账号还有豁免规则;默认限额很大,不会自动提供合理的 OOM 防护。
用于容量分析的关系式是:
xxxxxxxxxx进程内存 ≈ Buffer Pool + 全局缓存/DD/P_S/redo + 活跃连接实际分配的执行/网络/事务内存 + TempTable 共享内存及线程局部块 + 后台线程/插件/分配器开销 + 实际驻留的文件映射页等不能简单用 max_connections × (sort_buffer_size + join_buffer_size) 得到精确 RSS:这些缓冲并非所有连接始终分配,一个语句又可能有多个连接/排序算子。升级测试应同时观察 RSS/PSS、P_S、临时目录、swap 和峰值并发。
依据:8.0.28 发布说明、内存汇总表。
| 编号 | 变化 | 对多核与调度的具体意义 |
|---|---|---|
| CPU-01 | Resource Groups;8.0 GA | 将线程分配到虚拟 CPU 集合并调节优先级;受 OS/权限支持限制,不是 CPU 配额或内存 cgroup。 |
| CPU-02 | redo 专职后台线程;8.0.11 | 将日志生成与写出/刷盘分离,减少前台协调;低并发未必受益。 |
| CPU-03 | redo 线程可关闭;8.0.22 | innodb_log_writer_threads=OFF 让用户线程承担相关工作,适用于实测低并发更优场景。 |
| CPU-04 | redo 自旋阈值 | 根据 CPU 使用与刷盘延迟决定自旋/等待,权衡延迟与 CPU 消耗。 |
| CPU-05 | PAUSE 调节;8.0.16 | innodb_spin_wait_pause_multiplier 适配不同 CPU 的 PAUSE 指令成本;不是改变 SQL 锁超时。 |
| CPU-06 | 锁系统分片;8.0.21 | 单一 lock_sys mutex 的队列保护拆成更细 latch,减少高并发热点。 |
| CPU-07 | CATS 调度;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-12 | ICU/压缩/密码散列 | 更强 Unicode/压缩/认证能力有计算开销;不能假定功能升级一律减少 CPU。 |
| CPU-13 | 社区连接线程模型 | 默认仍通常 one-thread-per-connection;Thread Pool 并非 8.0 Community 新增默认模式。 |
| CPU-14 | 一般查询并行边界 | Hash Join/迭代器不自动把单条常规 SQL 变成多 worker 查询;应区别引擎内部并行、复制并行与查询并行。 |
两者都主要采用行存储、聚簇主键 B+Tree、包含主键值的二级索引、Buffer Pool、undo 支持的 MVCC、WAL 和 checkpoint。没有默认改成 LSM、列存或 append-only 引擎。5.7 已有压缩、通用表空间、在线 DDL、持久化统计、Buffer Pool 多实例。
| 编号 | 变化 | 实现/作用 |
|---|---|---|
| ENG-01 | 自增计数器持久化 | 最大计数变化写 redo,checkpoint 保存引擎私有元数据;重启不再仅按现存最大值重建计数。 |
| ENG-02 | 自增锁默认 2 | interleaved 取代 consecutive 默认,提升插入并发;不能保证无间隙/连续 ID,SBR 要评估。 |
| ENG-03 | 损坏标志持久化 | 索引损坏标志进入 redo/引擎元数据,崩溃后保留诊断状态。 |
| ENG-04 | LOB 局部更新 | 8.0.4 基础支持、8.0.12 小更新 undo 增强;≤100 字节等小修改可减少整页级操作。 |
| ENG-05 | LOB 版本机制 | 外部大对象页/索引和历史版本管理增强,支持更细更新与一致性读取;不是把大对象都放回行内。 |
| ENG-06 | 通用表空间重命名 | ALTER TABLESPACE RENAME TO,减少旧管理限制。 |
| ENG-07 | 表空间离线移动 | innodb_directories 配合启动扫描定位移动后的文件。 |
| ENG-08 | 路径白名单;8.0.21 | DATA DIRECTORY 必须符合 InnoDB 已知目录;恢复更可控但旧部署路径可能需配置。 |
| ENG-09 | 路径检查开关;8.0.21 | innodb_validate_tablespace_paths 可避免不必要扫描,适合已确认文件不会移动的环境。 |
| ENG-10 | 分配空间避免清零;8.0.22 | Linux 上 innodb_extend_and_initialize=OFF 可使用 posix_fallocate 路径,并通过 redo 处理恢复问题。 |
| ENG-11 | AUTOEXTEND_SIZE;8.0.23 | 表/通用表空间可控制增长步长,减少频繁扩文件;不要与系统表空间旧扩展参数混淆。 |
| ENG-12 | 段预留比例;8.0.26 | innodb_segment_reserve_factor 调节段中空页预留,权衡增长性能与空间。 |
| ENG-13 | fdatasync;8.0.26 | 支持平台可选择只同步必要数据/元信息,可能减少 fsync 开销。 |
| ENG-14 | open files 在线控制;8.0.28 | innodb_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-17 | idle flush;8.0.18 | innodb_idle_flush_pct 控制空闲期刷页比例,改善 SSD 写放大管理。 |
| ENG-18 | Buffer 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。
| 编号 | 阶段 | 支持与实现 |
|---|---|---|
| DDL-01 | 5.7 | INPLACE 允许部分在线操作,但加普通列往往仍重建数据;“online”不等于不扫描。 |
| DDL-02 | 8.0.12 | 新增 INSTANT ADD COLUMN,初期只能在末尾添加;元数据保存默认值,旧物理记录不立即补写。 |
| DDL-03 | 8.0.12 等 | 部分虚拟列、默认值、ENUM/SET 定义、索引属性等满足条件时可即时元数据变更。 |
| DDL-04 | 8.0.28 | RENAME COLUMN 的 INSTANT 范围扩展。 |
| DDL-05 | 8.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。
5.7 并不是完全没有日志后台线程、组提交或并发事务;差异是 8.0.11 将写出/刷盘等职责进一步分离,并重构共享日志缓冲的并发生产方式。
xxxxxxxxxx事务线程产生 mini-transaction redo -> 预留 LSN 范围、填充 log buffer、发布已完成区域 -> log writer:连续可写 redo -> OS 缓冲/文件 -> log flusher:使所需 redo 持久化 -> write/flush notifier:唤醒满足 LSN 条件的等待者 -> closer/checkpointer 等维护脏页关联边界与 checkpointLSN 有不同含义:已生成、可写连续前缀、已写文件、已刷盘、checkpoint 位置。后生成的片段完成并不允许跨过尚未完成的空洞直接认为全部持久化;并发化仍必须满足 WAL 与恢复顺序。
| 编号 | 变化 | 影响 |
|---|---|---|
| REDO-01 | 并发填充 log buffer | 减少对单一写入临界区的串行依赖;不是任意字节无保护地覆盖。 |
| REDO-02 | writer/flusher 职责拆分 | 高并发提交可以集中写出/刷盘,降低前台竞争;增加线程协作和唤醒成本。 |
| REDO-03 | 专门通知线程 | 按目标 LSN 唤醒等待者,减轻写线程额外负担。 |
| REDO-04 | flush list 较松排序 | 允许更灵活的脏页登记,辅以已完成边界保证 checkpoint 正确。 |
| REDO-05 | redo 等待自旋 | 结合 CPU 水位/刷盘延迟,平衡忙等与睡眠;不能笼统认为自旋越多越快。 |
| REDO-06 | log buffer 动态调整 | 无需重启修改大小;区别于磁盘 redo capacity。 |
| REDO-07 | 线程开关;8.0.22 | 关闭 writer threads 后由用户线程负责对应路径;选项改变执行职责,不改变 durability 参数含义。 |
| REDO-08 | 归档;8.0.17 | 顺序归档 redo,供备份读取,避免备份追赶不及而被循环覆盖。 |
| REDO-09 | 暂停 redo;8.0.21 | 用于可重建的新实例批量载入;关闭后崩溃可能不可恢复,不可作为常规生产调优。 |
| REDO-10 | redo 加密 | 可配合 keyring 对 redo 静态加密;CPU 和密钥恢复链需要纳入设计。 |
依据:redo 优化、固定版本 log0log.cc、log0write.cc。
| 项目 | 5.7.44 | 8.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 返回后磁盘占用马上降到目标。
| 编号 | 变化 | 说明 |
|---|---|---|
| UNDO-01 | 默认独立 undo 空间 | 5.7 默认 undo 在系统空间;8.0 默认初始化两个独立 undo 表空间。5.7 不是完全不能配置独立 undo。 |
| UNDO-02 | 在线建/删;8.0.14 | CREATE/ALTER/DROP UNDO TABLESPACE;可 ACTIVE/INACTIVE,必须达到允许状态才删除。 |
| UNDO-03 | 默认自动截断 | innodb_undo_log_truncate 默认开启;5.7 已有可选截断,差异不是“首次发明”。 |
| UNDO-04 | rollback segment 配置语义 | innodb_rollback_segments 从实例范围的旧含义改成每个 undo 空间相关配置,增加分散机会。 |
| UNDO-05 | 截断实现;8.0.21 | 减少强制清扫/刷页,旧页被动释放,新初始页 redo 化,并限制 checkpoint 间过多截断。 |
| UNDO-06 | undo 加密 | 独立的静态加密控制和 keyring 依赖。 |
| UNDO-07 | 长事务问题仍在 | 保留旧 read view 仍阻碍 purge;升级不会自动解决 history list 积压。 |
| 编号 | 变化 | 说明 |
|---|---|---|
| DBL-01 | 独立 doublewrite 文件;8.0.20 | 从系统表空间迁出,按刷页使用不同文件/批次,减少共享路径争用。 |
| DBL-02 | 可配置文件/目录/页批量 | innodb_doublewrite_dir/files/pages/batch_size,使放置和批处理可控。 |
| DBL-03 | 加密页;8.0.23 | 来自加密表空间的 doublewrite 页也可保持加密保护。 |
| DBL-04 | DETECT_ONLY;8.0.30 | 轻量检测撕裂页,不保存足够页内容用于恢复;与 DETECT_AND_RECOVER/ON 不等价。 |
| DBL-05 | WAL 与 doublewrite 分工 | redo 重放逻辑修改,doublewrite 处理不完整页写入;有 redo 不代表可随意关闭 doublewrite。 |
| DBL-06 | 目录 fsync 修复;8.0.38 | InnoDB 对修改目录结构的文件操作更一致地同步父目录,补充持久性边界。 |
依据:Doublewrite、8.0.38。
| 编号 | 变化 | 具体行为 |
|---|---|---|
| TRX-01 | NOWAIT | 锁定读无法立即获取目标锁则返回错误,适合快速失败;不是统一修改所有锁等待行为。 |
| TRX-02 | SKIP LOCKED | 跳过被其他事务锁定的行,适合工作队列;返回的是不完整视图,不适合要求完整一致结果的任意业务查询。 |
| TRX-03 | FOR SHARE 与 OF | 保留旧 LOCK IN SHARE MODE 兼容形式,新语法可限定锁定表和等待策略。 |
| TRX-04 | CATS | 按事务阻塞其他事务的程度计算调度权重,而非简单 FIFO;8.0.20 去掉旧 FIFO 分支并独立计算权重。 |
| TRX-05 | 权重可见 | INNODB_TRX.TRX_SCHEDULE_WEIGHT 及相关计数器用于观察等待调度。 |
| TRX-06 | lock_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-10 | XA detached;8.0.29 | XA PREPARE 后默认与原连接分离,其他连接可提交/回滚,原连接可继续新的事务;受 xa_detach_on_prepare 控制。 |
| TRX-11 | XA crash safety;8.0.30 | 改善 binlog 与引擎在 prepare/commit/rollback 故障点的一致性;仍有文档列明的 XID 重用等限制。 |
| TRX-12 | XA 复制过滤;8.0.31 | 修正 XA 边界语句被数据库级过滤器错误过滤的行为。 |
未改变的基线:InnoDB 默认 REPEATABLE READ;一致性读、当前读、记录锁、间隙锁、next-key lock、MDL 依然存在。锁系统的 latch 保护内存结构,事务 lock 保护逻辑数据,两者不是同一种锁。5.7 已有死锁检测开关。
依据:锁定读、事务调度、8.0.21、XA 状态、XA 限制。
| 编号 | 变化 | 5.7.44 与 8.0.39 的区别 |
|---|---|---|
| RPL-01 | 默认启用 binlog | 5.7 mysqld 原生默认 OFF;8.0 默认 ON。已有安装配置可能早已主动启用。 |
| RPL-02 | 秒级过期控制 | binlog_expire_logs_seconds 默认 2592000 秒,即 30 天;5.7 expire_logs_days 默认 0。 |
| RPL-03 | 自动清理开关;8.0.29 | binlog_expire_logs_auto_purge 控制自动清理,不影响显式 PURGE。 |
| RPL-04 | 事务压缩;8.0.20 | binlog_transaction_compression 使用 zstd 压缩事务 payload,节省日志/传输并增加压缩解压 CPU;默认不因支持而自动开启。 |
| RPL-05 | binlog/relay log 加密;8.0.14 | binlog_encryption 保护磁盘日志及相关缓存路径;客户端工具访问方式有约束。 |
| RPL-06 | JSON 差异日志 | 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。
| 编号 | 变化 | 说明 |
|---|---|---|
| RPL-11 | WRITESET 不是全新 | 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.27 | 0→4;5.7 需主动设置才用 worker 并行。 |
| RPL-14 | 默认并行类型 | DATABASE→LOGICAL_CLOCK;同库事务也能按依赖关系并行。 |
| RPL-15 | 默认提交顺序保留 | replica_preserve_commit_order=ON;减少副本读取到与源提交顺序不同的中间可见状态。 |
| RPL-16 | worker 队列预算 | 默认 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.23 | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS 支持特定迁移拓扑;不是无条件兼容所有 GTID 模式。 |
| RPL-23 | GTID_ONLY;8.0.27 | 支持通道减少文件位置仓库维护,对 GTID/ROW/并行等有要求。 |
| RPL-24 | 副本生成 GIPK;8.0.32 | REQUIRE_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、固定版本复制默认值。
5.7.17 已有 Group Replication,因此“8.0 增加组复制”错误。InnoDB Cluster/Shell/Router 是配套产品和编排层,也不等于 Server 的单个功能。
| 编号 | 8.0 增强 | 说明 |
|---|---|---|
| GR-01 | 一致性级别;8.0.14 | EVENTUAL、BEFORE_ON_PRIMARY_FAILOVER、BEFORE、AFTER、BEFORE_AND_AFTER,在故障切主与读写前后增加等待保证。 |
| GR-02 | 单主/多主在线切换 | UDF/API 支持选择 primary 和模式切换,减少重建组操作。 |
| GR-03 | Clone 分布式恢复;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-10 | MySQL 通信栈;8.0.27 | 除 XCom 外可使用 MYSQL 通信栈,复用 MySQL 认证/网络设施;不是完全取消 XCom。 |
| GR-11 | Paxos single leader;8.0.27 | 在允许条件下减少通信协调开销,受通信协议/版本设置影响。 |
| GR-12 | 成员操作和主从动作 | 控制成员角色切换后的动作,例如只读和异步通道处理。 |
| GR-13 | 版本兼容放宽;8.0.35 | 8.0.35 及以上组成员的补丁版本兼容与受支持回退范围扩展;不能推导可与 5.7 任意混组。 |
| GR-14 | 8.0.37 KILL 语义修复 | 特定 failover consistency 下 KILL 不再受一致性等待阻碍,便于终止操作。 |
依据:组复制一致性、Clone 恢复、组复制变量、8.0.27、8.0.35。
| 编号 | 变化 | 诊断价值 |
|---|---|---|
| OBS-01 | data_locks/data_lock_waits | 替代旧 I_S 锁等待表;脚本应使用新列名和 JOIN 方式,不能原样替换表名。 |
| OBS-02 | DD/I_S 新视图 | 新 INNODB_TABLES/INDEXES/COLUMNS 等取代 INNODB_SYS_*;暴露 SDI、instant row versions、空间加密等。 |
| OBS-03 | 直方图表 | COLUMN_STATISTICS 可导出/比对分布统计。 |
| OBS-04 | TempTable 内存观测 | memory/temptable 等 instrumentation,辅以文件系统统计才能覆盖 mmap。 |
| OBS-05 | 临时空间池监控 | INNODB_SESSION_TEMP_TABLESPACES 可定位会话临时空间。 |
| OBS-06 | redo 监控 | 新容量、resize、LSN、文件信息改善刷盘瓶颈诊断。 |
| OBS-07 | 锁分片监控 | 原 lock_mutex instrument 被 global/table/page shard 的监控项替换。 |
| OBS-08 | 语句样本 | digest 汇总中可保留样本 SQL/采样时间,便于从指纹定位原语句。 |
| OBS-09 | 分布/直方统计 | P_S statement histogram 和分位数类统计帮助观察尾延迟;区别于优化器的列直方图。 |
| OBS-10 | CPU 时间;8.0.28 | statement_cpu instrument 及相关 CPU_TIME 数据,受平台和采集开关条件限制。 |
| OBS-11 | 语句内存峰值;8.0.31 | MAX_CONTROLLED_MEMORY/MAX_TOTAL_MEMORY 等帮助定位高内存语句。 |
| OBS-12 | 系统变量来源 | variables_info、persisted_variables 等查询变量来源、设置时间/身份和持久化值。 |
| OBS-13 | TLS 状态 | tls_channel_status 等按通道观察证书/加密上下文。 |
| OBS-14 | 错误日志 SQL 查询;8.0.22 | P_S error_log 将支持的错误日志 sink 内容纳入 SQL 诊断。 |
| OBS-15 | 错误日志组件化 | filter/sink 管道、JSON sink、系统日志组件,结构化解析更方便。 |
| OBS-16 | 早期日志加载;8.0.30 | log_error_services 指定组件可在引擎可用前加载,覆盖更早启动阶段。 |
| OBS-17 | P_S PROCESSLIST;8.0.22 | 可选择减少旧全局互斥争用的实现;8.0.35 旧 I_S PROCESSLIST 路径弃用。 |
| OBS-18 | EXPLAIN ANALYZE | 从估算计划扩展到运行时 rows/time/loops;观察热点不能只看 cost。 |
| OBS-19 | Clone 进度 | 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 查询的内存/锁问题;高频全量采集应评估开销。 |
依据:数据锁、锁等待、语句表、变量表、错误日志表、错误日志配置。
| 编号 | 变化 | 说明 |
|---|---|---|
| OPS-01 | LOCK INSTANCE FOR BACKUP | 允许 DML、阻止会破坏备份一致性的文件级操作,需 BACKUP_ADMIN;不能直接等同 FLUSH TABLES WITH READ LOCK。 |
| OPS-02 | Clone;8.0.17 | 官方插件可本地/远程克隆 InnoDB 物理数据,适合副本/GR 初始化;不是 SQL 逻辑导出。 |
| OPS-03 | Clone 的破坏性 | 远程克隆接收端会替换数据,用户数据/状态处理按文档;本报告不执行克隆命令。 |
| OPS-04 | Clone 并发 DDL;8.0.27 | donor 可在克隆期间执行受支持 DDL,clone_block_ddl 可恢复旧阻塞策略。 |
| OPS-05 | Clone 删除后延迟;8.0.29 | clone_delay_after_data_drop 等待异步释放空间的文件系统,减少接收端瞬时空间不足。 |
| OPS-06 | Clone 补丁版本兼容;8.0.37 | 8.0.37 及以上同系列支持不同点版本克隆;不能由此支持 5.7→8.0 Clone。 |
| OPS-07 | Redo archiving | 备份软件可消费归档 redo,不因循环覆写落后;不是 binlog PITR 的替代品。 |
| OPS-08 | SET PERSIST | 8.0 保存配置到 mysqld-auto.cnf,重启继续有效;SET GLOBAL 仍只改运行时。 |
| OPS-09 | SET PERSIST_ONLY | 只持久化而不立即改运行值,适合相关启动变量;需要权限及变量允许。 |
| OPS-10 | RESET PERSIST | 删除持久化条目;不等于把当前运行值立刻恢复默认。 |
| OPS-11 | 配置来源冲突 | my.cnf、命令行、持久化配置可能叠加;升级故障应查看实际来源而非只 grep my.cnf。 |
| OPS-12 | 服务器内置升级;8.0.16 | DD、系统表等升级整合到启动过程,使用 --upgrade 控制;mysql_upgrade 留下兼容入口但不做旧任务。 |
| OPS-13 | lower_case_table_names | 必须在初始化时确定并与数据字典匹配,不能升级后随意改值。 |
| OPS-14 | RESTART 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、持久化变量、升级前提、升级路径。
| 编号 | 模块 | 变化和发行边界 |
|---|---|---|
| EXT-01 | Component infrastructure | 服务注册、依赖与组件加载框架,INSTALL/UNINSTALL COMPONENT;与旧 Plugin 框架并存。 |
| EXT-02 | 错误日志组件 | 可配置 filter/sink 链,不再只有旧固定输出路径。 |
| EXT-03 | Keyring 组件 | 启动早期加载及配置文件/manifest 模型;组件是否可用取决于发行包。 |
| EXT-04 | 密码验证组件 | validate_password.* 组件变量与旧下划线插件变量有区别。 |
| EXT-05 | Enterprise Audit | 日志读取、过滤、加密、压缩、轮转/清理、缓存等持续增强;5.7 企业版已有审计,不能写成整个功能新出现。 |
| EXT-06 | Enterprise Data Masking | 8.0.13 起插件能力,后续组件形态、多字节和字典表支持;社区版并非默认具备。 |
| EXT-07 | Enterprise Thread Pool | 原本已存在,8.0 改进调度/监控/限制;不能用其结果代表社区版连接调度。 |
| EXT-08 | Enterprise Firewall | 企业版原有白名单防护持续增强;必须按企业手册和包核对。 |
| EXT-09 | Document Store | X Protocol、CRUD、Collection、DevAPI 功能增强;5.7 后期已经存在,不是 8.0 发明文档数据库。 |
| EXT-10 | mysqlbinlog | 适配新事务压缩、加密读取路径和事件元数据;旧解析器需要升级。 |
| EXT-11 | mysqldump | 适配列统计、GIPK、新对象与权限;8.0 客户端对 5.7 应核对选项,不能把不支持 COLUMN_STATISTICS 当服务故障。 |
| EXT-12 | mysqlpump | 5.7 已有,8.0.34 起弃用,8.0.39 尚不是已删除。 |
| EXT-13 | mysql_upgrade | 8.0.16 起工作由服务端承担,旧自动化流程要调整。 |
| EXT-14 | 客户端库 | 异步 C API、认证、TLS/压缩适配;旧 ABI/已移除 API 的应用需要重新编译或升级驱动。 |
| EXT-15 | 构建工具链 | C++ 标准、编译器、CMake、OpenSSL、ICU、第三方库要求随 8.0 补丁发展;以固定 tag 和目标包为准。 |
| EXT-16 | TLS 库 | 8.0.37 随附 OpenSSL 升至 3.0.13;5.7.44 已将相应捆绑库升至 3.0.10,故 OpenSSL 3 本身不是 8.0 独有。仅指捆绑库的平台。 |
| EXT-17 | 内存分配器;8.0.38 | Linux 可选择 bundled tcmalloc,部分 Linux 构建使用;这不是 InnoDB Buffer Pool 结构本身变化。 |
| EXT-18 | ARM 包;8.0.38 | aarch64 二进制针对 4K/64K 页大小兼容性调整;OS 页大小不等于 innodb_page_size。 |
| EXT-19 | NDB | NDB 是独立分布式存储引擎产品线;其线程/内存/复制实现不能归入本文件的 InnoDB 对照。 |
| EXT-20 | HeatWave/其他分支 | HeatWave、Percona、MariaDB、Aurora 的并行查询/线程池/增强不代表 Oracle Community 8.0.39。 |
依据:组件、Keyring 组件与插件、数据脱敏组件、8.0.34、8.0.37、8.0.38。
以下是未被配置文件/发行包覆盖的上游默认;初始化、OS、编译和 innodb_dedicated_server 可能改变最终值。5.7 的旧 slave* 名称与 8.0 replica* 对应比较。
| 项目 | 5.7.44 | 8.0.39 | 主要影响 |
|---|---|---|---|
| character_set_server | latin1 | utf8mb4 | 新建对象默认编码 |
| collation_server | latin1_swedish_ci | utf8mb4_0900_ai_ci | 比较与排序语义 |
| default_authentication_plugin | mysql_native_password | caching_sha2_password | 新账号与驱动兼容 |
| explicit_defaults_for_timestamp | OFF | ON | TIMESTAMP 默认行为 |
| log_bin | OFF | ON | I/O、空间、复制基础 |
| 日志自动保留 | expire_logs_days=0 | binlog_expire_logs_seconds=2592000 | 默认 30 天清理 |
| log_slave_updates/log_replica_updates | OFF | ON | 副本重记 binlog |
| master_info_repository | FILE | TABLE | 复制位点元数据 |
| relay_log_info_repository | FILE | TABLE | apply 恢复 |
| slave/replica_parallel_workers | 0 | 4 | 默认并行 apply |
| slave/replica_parallel_type | DATABASE | LOGICAL_CLOCK | 调度依赖模型 |
| slave/replica_preserve_commit_order | OFF | ON | 提交可见顺序 |
| slave/replica_pending_jobs_size_max | 16 MiB | 128 MiB | 复制待处理队列预算 |
| transaction_write_set_extraction | OFF | XXHASH64 | 写集合计算开销与用途 |
| innodb_autoinc_lock_mode | 1 | 2 | 插入并发与编号分配 |
| innodb_undo_tablespaces | 0 | 默认初始化 2 个,旧变量弃用 | undo 管理 |
| innodb_undo_log_truncate | OFF | ON | 自动空间回收 |
| innodb_max_dirty_pages_pct | 75 | 90 | 刷页目标 |
| innodb_max_dirty_pages_pct_lwm | 0 | 10 | 默认预刷 |
| max_allowed_packet(server) | 4 MiB | 64 MiB | 网络包上限,非每连接预分配 |
| event_scheduler | OFF | ON | 事件调度是否默认运行 |
| 内部内存临时表引擎 | MEMORY | TempTable | 内存布局与溢出方式 |
| 内部磁盘临时表 | 可配置 InnoDB/MyISAM | 只支持 InnoDB | 临时磁盘行为 |
| 默认 redo 总容量 | 96 MiB | 100 MiB | 新容量管理模型 |
| Query Cache | 存在,type 默认 OFF | 删除 | 参数和 SQL_CACHE 兼容性 |
| innodb_log_buffer_size | 16 MiB,非动态 | 16 MiB,动态 | 值未变,可管理性变了 |
| back_log 自动值 | min(50 + max_connections/5, 900) | min(max_connections, 65535) | 等待接入队列,仍受 OS 限制 |
| innodb_flush_neighbors | 1 | 0 | 不再默认顺带刷邻接脏页,更适合 SSD 场景 |
| local_infile(server) | ON | OFF | LOAD DATA LOCAL 需明确启用并配合客户端能力 |
| log_error_verbosity | 3 | 2 | 默认少记录 Note 等低严重度信息 |
| optimizer_trace_max_mem_size | 16 KiB | 1 MiB | 优化器 trace 默认内存上限 |
| server_id | 0 | 1 | 复制拓扑仍必须显式分配唯一 server_id |
| P_S events_transactions_current/history consumer | OFF | ON | 默认事务事件采集开销/可见性变化 |
| slave_rows_search_algorithms | TABLE_SCAN,INDEX_SCAN | INDEX_SCAN,HASH_SCAN | 无合适索引时副本查找行策略变化;8.0.39 已弃用此调节方向 |
| max_length_for_sort_data | 1024 | 4096,但已弃用且不再有效控制排序 | 不能把数值变化当可用调优手段 |
| innodb_flush_method(普通 Unix 配置) | fsync | fsync | 不要把专用服务器自动配置或 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。
| 编号 | 项目 | 迁移影响 |
|---|---|---|
| REM-01 | Query Cache | 删除 query_cache_*、相关状态和 SQL_CACHE 用法;SQL_NO_CACHE 没有旧缓存控制意义。 |
| REM-02 | 旧元数据文件/表依赖 | .frm/.TRG/.TRN/.par 等旧存储方式退出相关对象管理;mysql.proc/event 旧接口不可沿用。 |
| REM-03 | 通用分区层 | 仅使用原生分区引擎;5.7 的 MyISAM 等旧分区表需要先迁移,不能原样升级。 |
| REM-04 | INNODB_SYS_* 旧表 | 改用新 I_S DD 视图;监控/备份工具必须适配。 |
| REM-05 | INNODB_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-07 | innodb_support_xa | 不再提供该旧开关。 |
| REM-08 | GRANT 自动建用户 | 账号创建/认证与权限授予分离。 |
| REM-09 | NO_AUTO_CREATE_USER | SQL mode 删除;把 5.7 sql_mode 原样带入可能启动/设置失败。 |
| REM-10 | PASSWORD() 与旧密码函数/语法 | 不能再用旧函数生成认证字符串;应用不应依赖账户密码格式作为业务哈希。 |
| REM-11 | 旧 DES/ENCODE/DECODE 加密函数 | 使用受支持函数/应用密码库,并制定旧数据解密迁移策略。 |
| REM-12 | 多个旧 GIS 非 ST_ 函数名 | 检查函数是否被移除或更名,不能批量假定全部只是加前缀等价。 |
| REM-13 | GROUP BY ASC/DESC | 在 GROUP BY 中表达排序的旧写法删除;使用单独 ORDER BY。 |
| REM-14 | PROCEDURE ANALYSE | SELECT 的旧分析扩展删除。 |
| REM-15 | EXPLAIN EXTENDED/PARTITIONS 修饰 | 旧写法退出;使用当前 EXPLAIN 格式与 SHOW WARNINGS。 |
| REM-16 | 旧 SQL modes | DB2/MAXDB/MSSQL/MYSQL323/MYSQL40/ORACLE/POSTGRESQL、NO_FIELD_OPTIONS/NO_KEY_OPTIONS/NO_TABLE_OPTIONS 等清理。 |
| REM-17 | myisam_repair_threads / myisamchk --parallel-recover | 8.0.30 删除这些并行修复接口;不是删除 MyISAM 引擎。 |
| REM-18 | mysql_install_db 等旧程序 | 使用 mysqld --initialize;旧脚本和打包流程需迁移。 |
| REM-19 | libmysqld 嵌入式服务器 | 不再提供;应用架构不能只替换动态库。 |
| REM-20 | libmysqlclient 旧接口/my_bool | 旧客户端代码可能需重新编译和改类型/接口。 |
| REM-21 | TLS 1.0/1.1 | 8.0.28 删除,旧连接必须升级。 |
| REM-22 | BNL 执行算法 | 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.39 状态 |
|---|---|---|
| DEP-01 | mysql_native_password | 8.0.34 弃用,仍存在 |
| DEP-02 | default_authentication_plugin | 8.0.27 弃用,authentication_policy 为新配置方向 |
| DEP-03 | utf8mb3 与 utf8 别名 | 弃用,显式迁移到 utf8mb4 |
| DEP-04 | 整数显示宽度、ZEROFILL 等 | 多项类型属性弃用;显示宽度不决定 INT 存储范围 |
| DEP-05 | SQL_CALC_FOUND_ROWS/FOUND_ROWS() | 8.0.17 弃用;需要计数时评估单独 COUNT |
| DEP-06 | INSERT 中 VALUES(col) 引用 | 8.0.20 弃用,改新行别名 |
| DEP-07 | innodb_log_file_size/files_in_group | 8.0.30 弃用,改 redo capacity |
| DEP-08 | binlog_format 与非 ROW 方向 | 8.0.34 弃用设置 binlog_format 等相关能力;8.0.39 仍不能写成只剩 ROW |
| DEP-09 | mysqlpump | 8.0.34 弃用,未在 8.0.39 删除 |
| DEP-10 | 旧 master/slave 语句/变量 | 多数以兼容别名保留,逐步迁移 source/replica |
| DEP-11 | 复制 FILE 仓库 | 相关配置弃用,推荐 TABLE |
| DEP-12 | 旧 INFORMATION_SCHEMA.PROCESSLIST | 8.0.35 弃用,推荐 P_S 路径 |
| DEP-13 | 账号/授权通配符 | 8.0.35 起相关 %/_ 和特定 localhost 匹配行为弃用,未全部删除 |
| DEP-14 | validate_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 可用。
以下为阅读/测试示例,本次未对生产库执行。示例需在测试 schema、相应权限下运行;查询计划取决于数据和统计,不保证命中某索引或算法。
xxxxxxxxxxCREATE DATABASE IF NOT EXISTS demo;-- 角色:授予角色后还要考虑默认/当前激活角色。CREATE ROLE 'report_reader';GRANT SELECT ON demo.* TO 'report_reader';-- 对已存在的测试账号执行:-- GRANT 'report_reader' TO 'report_user'@'localhost';-- SET DEFAULT ROLE 'report_reader' TO 'report_user'@'localhost';
CREATE TABLE demo.sales ( id BIGINT PRIMARY KEY, region VARCHAR(32), amount DECIMAL(12,2), created_at DATETIME, attributes JSON);
SELECT region, id, amount, ROW_NUMBER() OVER (PARTITION BY region ORDER BY amount DESC, id) AS rn, SUM(amount) OVER (PARTITION BY region) AS region_totalFROM demo.sales;
ANALYZE TABLE demo.sales UPDATE HISTOGRAM ON region WITH 64 BUCKETS;SELECT HISTOGRAM FROM information_schema.COLUMN_STATISTICSWHERE SCHEMA_NAME='demo' AND TABLE_NAME='sales' AND COLUMN_NAME='region';
-- DESC 是降序,不是全文倒排。CREATE INDEX ix_region_amount ON demo.sales(region ASC, amount DESC);ALTER TABLE demo.sales ALTER INDEX ix_region_amount INVISIBLE;
-- 函数索引。CREATE INDEX ix_created_date ON demo.sales ((DATE(created_at)));
-- 数值 JSON 数组的多值索引。CREATE INDEX ix_tags ON demo.sales ((CAST(attributes->'$.tags' AS UNSIGNED ARRAY)));xxxxxxxxxxSELECT @@version, @@version_comment;SHOW VARIABLES WHERE Variable_name IN ( 'internal_tmp_mem_storage_engine','tmp_table_size', 'temptable_max_ram','temptable_max_mmap','join_buffer_size', 'innodb_log_writer_threads','innodb_redo_log_capacity', 'connection_memory_limit','global_connection_memory_tracking');
-- 会真正执行此 SELECT,应用于测试数据。EXPLAIN ANALYZE SELECT region, SUM(amount)FROM demo.sales GROUP BY region;
SELECT EVENT_NAME, CURRENT_NUMBER_OF_BYTES_USED, HIGH_NUMBER_OF_BYTES_USEDFROM performance_schema.memory_summary_global_by_event_nameWHERE EVENT_NAME LIKE 'memory/temptable/%';
SELECT NAME, TOTAL_ROW_VERSIONSFROM information_schema.INNODB_TABLESWHERE NAME='demo/sales';xxxxxxxxxxCREATE TABLE demo.check_test (n INT, CONSTRAINT ck_n CHECK (n > 0));-- 8.0.39 拒绝负数,5.7.44 不执行该 CHECK。-- INSERT INTO demo.check_test VALUES (-1);
-- 不能依赖 GROUP BY 自带排序:SELECT region, SUM(amount) AS totalFROM demo.sales GROUP BY region ORDER BY region;
-- 显式比较排序规则的尾随空格语义:SELECT _utf8mb4'a' COLLATE utf8mb4_0900_ai_ci = _utf8mb4'a ' COLLATE utf8mb4_0900_ai_ci;记录两边完整版本/发行包、所有显式参数、插件和实际运行变量;默认值表不能代替实例快照。
校验驱动认证、TLS 和压缩;区分“连接成功”与预处理、批量读写、连接池重连都正常。
检查保留字、删除语法、字符集/尾随空格、JSON 重复键、CHECK 与日期转换。
用真实数据分布比较计划、实际行数、临时表落盘、锁等待及 P95/P99,不能只用空表 EXPLAIN。
以相同并发重测 RSS、连接内存、TempTable/mmap、redo writer 的 CPU 和 fsync 延迟。
验证备份恢复、GTID、CDC、复制延迟、binlog 过期和故障切换;做好可执行回退方案。
额外验证 8.0.39 的准确补丁边界,不能用 8.0.11 的经验或 8.4 的默认值替代。
| 版本 | 关键变化(选摘,非该版全部内容) |
|---|---|
| 8.0.11 首个 GA | 事务性 DD、原子 DDL、角色、CTE、窗口、直方图、新默认字符集/认证、redo 专职线程等 |
| 8.0.12 | INSTANT ADD COLUMN、LOB 小修改 undo、filesort 内存增长等 |
| 8.0.13 | 函数索引、Skip Scan、表达式默认值、TempTable BLOB、会话临时空间 |
| 8.0.14 | LATERAL、JSON 窗口聚合、双密码、在线 undo、管理接口、并行读取 |
| 8.0.16 | CHECK 执行、自动升级、TLS 1.3/在线重载、EXISTS 半连接、TREE |
| 8.0.17 | 多值索引、JSON Schema、反连接、Clone、redo archive |
| 8.0.18 | Hash Join、EXPLAIN ANALYZE、zstd 连接压缩 |
| 8.0.19 | TABLE/VALUES、插入新行别名、时区偏移输入、登录失败锁 |
| 8.0.20 | 迭代器替换关键阶段、BNL 退出、独立 doublewrite、binlog 压缩 |
| 8.0.21 | lock_sys 分片、redo 开关、JSON_VALUE、原子 CTAS 复制 |
| 8.0.22 | 派生条件下推、redo writer 开关、异步连接 failover、连接 namespace |
| 8.0.23 | 不可见列、mmap 上限、doublewrite 加密、AUTOEXTEND_SIZE |
| 8.0.24 | 相关标量子查询转换增强 |
| 8.0.26 | fdatasync、段预留比例控制等 |
| 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.31 | INTERSECT/EXCEPT、导入 histogram、语句内存/扩容监控 |
| 8.0.32 | explain_format、副本 GIPK、空间转换增强 |
| 8.0.33~36 | 维护、安全、弃用、性能和结果正确性修复;不能视为没有差异 |
| 8.0.37 | Clone 点版本兼容、哈希库替换、redo/并行读/监控修复 |
| 8.0.38 | tcmalloc 构建选项、目录 fsync、复制与内存修复;存在严重启动回归,已撤回 |
| 8.0.39 | 修复创建大量表后的重启失败、提高启动表空间扫描性能、修复异步→GR 的 CTAS 错误 |
8.0.39 官方发布说明只有三项修复,不能把它当作整个 5.7→8.0 的变化:
修复创建大量表(8001 或更多)后某些情况下无法重启,Bug #36808732,回归来源 #33398681。
改进启动时表空间文件扫描性能,Bug #110402 / #35200385。
修复异步复制通道向 Group Replication 输送 CREATE TABLE ... SELECT 时副本出错,Bug #36784284。
来源:8.0.39。8.0.38 被撤回的原因见 8.0.38 发布说明。
本文件覆盖模块级和公开能力级差异,但以下内容不能从两份手册自动推导完整:
全部 Bug 集合差:需要对照 5.7/8.0 发布记录与源码提交,剔除已回补到 5.7.44 的相同修复。8.0 新功能自身的 Bug 也不是“5.7 必有该 Bug”。
所有参数默认值与平台差异:需要两个目标二进制的 SHOW VARIABLES、编译宏、实际包和初始化选项;附录生命周期清单不是两个实例的运行值 diff。
全部函数/语法入口:源码注册表只能覆盖普通内建函数;窗口、聚合、SQL 关键字语法、插件函数分属不同入口。附录将明确覆盖范围。
企业/NDB/操作系统包:授权插件、系统 OpenSSL、文件系统、分配器和编译架构会改变能力与性能。
未公开的内部优化:若没有官方公开说明或固定 tag 源码证据,本文件不编造 latch 数、内存布局、性能倍数。
因此本文的“尽可能详细”采用“有来源、有版本边界、有局限说明”的清单方式;没有把缺乏证据的推测包装成已穷尽事实。
以下补充容易被“窗口、角色、Hash Join”等大功能掩盖的接口和实现变化。它们属于前述模块的细项,而不是新的独立架构层。
| 编号 | 变化 | 版本、机制与影响 |
|---|---|---|
| MORE-01 | Buffer 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-06 | log_status 一致快照 | 8.0.11 P_S log_status 为备份协调提供日志位置状态;采样时的短暂阻塞与持有整个备份期间全局锁不同。 |
| MORE-07 | 慢日志扩展 | 8.0.14 log_slow_extra 为 FILE 慢日志增加线程、读写字节、临时表等额外字段;TABLE 输出不因此同样扩展。 |
| MORE-08 | Statement ID | 8.0.14 P_S 语句事件增加 STATEMENT_ID;8.0.33 可通过会话状态跟踪返回成功语句的 ID。 |
| MORE-09 | SHOW CREATE 展示 | show_create_table_verbosity 可显示更完整选项;显式列 collation 等输出规则变化影响 schema diff 工具。 |
| MORE-10 | 外键自动命名 | 8.0.16 不再按旧方式使用 FOREIGN KEY index_name 生成约束名;迁移脚本不应依赖隐式生成名称。 |
| MORE-11 | DROP 的外键检查 | 原子 DDL 路径在删除前检查相关关系,减少多表语句部分成功的问题。 |
| MORE-12 | RENAME 与显式表锁 | 8.0.13 允许符合条件的 WRITE-locked 表重命名;不是所有读锁/混合锁都允许。 |
| MORE-13 | 字符集变更无需重建的特例 | 8.0.14 未建索引的 CHAR/VARCHAR/TEXT/ENUM 列,utf8mb3→utf8mb4 或任意字符集→binary 的特定转换可原地完成;必须满足文档限制,绝非任意字符集转换零成本。 |
| MORE-14 | GROUP 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-18 | utf8 名称显示 | 8.0.29/30 多处元数据/SHOW 输出改显示 utf8mb3 与相应 collation 名称;业务可能仅因文本不同触发 schema drift 告警。 |
| MORE-19 | 主机名长度 | 8.0.17 多处 host name 最大长度提高到 255 ASCII 字符,账号表/插件/驱动相关结构需匹配。 |
| MORE-20 | LOCAL 导入默认关闭 | local_infile 默认 OFF;服务端打开仍需客户端允许 LOCAL,两个条件不能替代。 |
| MORE-21 | 持久化敏感变量 | 8.0.29 支持对被标记为敏感的持久化变量采用加密存储/恢复,依赖相应 keyring 能力与配置;不是 mysqld-auto.cnf 所有内容天然保密。 |
| MORE-22 | Binlog 内部 I/O 接口 | 8.0.13 将日志读写和事件反序列化路径重构,增强损坏事件校验;CDC 仍必须自行验证输入。 |
| MORE-23 | GTID 与临时表 | 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-26 | GR IPv6 | 8.0.14 组通信完整支持 IPv6,涉及成员地址和 allowlist 配置。 |
| MORE-27 | GR 本机输入通道 | 8.0.14 通过共享内存专用输入通道降低本机向组通信引擎传送消息开销。 |
| MORE-28 | XCom 消息缓存 | 8.0.16 增加缓存大小控制;不能把 Query Cache 删除理解成 XCom 也不缓存消息。 |
| MORE-29 | GR event horizon | 可查询/调整并发共识实例范围,控制一致性通信流水线;与 SQL 事务隔离级别无关。 |
| MORE-30 | X Protocol 预处理 | 8.0.14 支持 SQL prepare;经典协议预处理在 5.7 已有。 |
| MORE-31 | X 会话重置 | 8.0.16 增加不重新认证/断开连接的会话状态重置能力;经典 COM_RESET_CONNECTION 原本已存在。 |
| MORE-32 | X 返回字符集 | 8.0.14 明确检索数据按 utf8mb4 转换返回,客户端不能假定与旧返回字节语义完全一致。 |
| MORE-33 | X CRUD 查询能力 | X Plugin/DevAPI 的文档补丁、数组、锁定读、结果通知等按协议版本扩展;不能因连接 33060 成功就假定旧 Connector 理解新特性。 |
| MORE-34 | P_S keyring_keys | 8.0.16 暴露密钥标识/拥有者/backend ID 等元信息,不暴露密钥内容。 |
| MORE-35 | 线程名导出到 OS | 8.0.27 支持把被 instrument 的线程名称传给操作系统,方便 top/perf 等关联内部线程。 |
| MORE-36 | Telemetry 生命周期服务 | 8.0.33 给插件/组件提供 SQL 生命周期通知接口;特定 HeatWave telemetry 插件不能算社区默认功能。 |
| MORE-37 | 崩溃栈结构化补录 | 8.0.31 启动时可处理传统错误日志尾部未处理堆栈并交给日志服务,改善 JSON/P_S 可见性。 |
| MORE-38 | FIPS 与 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-44 | Windows 分配器 | 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。
固定版本 release notes 确认引入/移除/补丁边界。
8.0 官方手册解释机制,但剔除 8.0.40 以后内容。
5.7 release notes 与 mysql-5.7.44 源码确认是否已回补。
mysql-8.0.39 源码确认参数默认/注册入口和实现目录。
部分历史 5.7 手册 URL 会跳转到新版本,不能只看地址中的 5.7。本文因此优先链接固定 release notes 与 tag;不将跳转后页面冒充 5.7.44 事实。
下面附录以名称、版本和入口补齐长尾项目,避免正文为了罗列几百个状态计数器而失去可读性。
以下直接比较官方源码两个 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 个。源码条件编译项也计入,因此不保证每种发行包均可调用。
ST_FRECHETDISTANCE()
ST_HAUSDORFFDISTANCE()
ST_LATITUDE()
ST_LINEINTERPOLATEPOINT()
ST_LINEINTERPOLATEPOINTS()
ST_LONGITUDE()
ST_POINTATDISTANCE()
ST_SWAPXY()
ST_TRANSFORM()
BIN_TO_UUID()
CURRENT_ROLE()
FORMAT_BYTES()
FORMAT_PICO_TIME()
ICU_VERSION()
IS_UUID()
JSON_OVERLAPS()
JSON_SCHEMA_VALID()
JSON_SCHEMA_VALIDATION_REPORT()
JSON_STORAGE_FREE()
PS_CURRENT_THREAD_ID()
PS_THREAD_ID()
REGEXP_INSTR()
REGEXP_LIKE()
REGEXP_REPLACE()
REGEXP_SUBSTR()
ROLES_GRAPHML()
SOURCE_POS_WAIT()
STATEMENT_DIGEST()
STATEMENT_DIGEST_TEXT()
UUID_TO_BIN()
新增公共函数的用途补充(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_WAIT | MASTER_POS_WAIT 的新术语接口,不是首次获得等待复制位点能力 |
| IS_UUID / UUID_TO_BIN / BIN_TO_UUID | 检查 UUID 格式及转换文本/二进制表示,转换时的 swap 参数必须对应 |
依据:Performance Schema 函数、信息函数、加密与压缩/指纹函数、其他函数。
INTERNAL_AUTO_INCREMENT()
INTERNAL_AVG_ROW_LENGTH()
INTERNAL_CHECKSUM()
INTERNAL_CHECK_TIME()
INTERNAL_DATA_FREE()
INTERNAL_DATA_LENGTH()
INTERNAL_DD_CHAR_LENGTH()
INTERNAL_GET_COMMENT_OR_ERROR()
INTERNAL_GET_DD_COLUMN_EXTRA()
INTERNAL_GET_ENABLED_ROLE_JSON()
INTERNAL_GET_HOSTNAME()
INTERNAL_GET_MANDATORY_ROLES_JSON()
INTERNAL_GET_PARTITION_NODEGROUP()
INTERNAL_GET_USERNAME()
INTERNAL_GET_VIEW_WARNING_OR_ERROR()
INTERNAL_INDEX_COLUMN_CARDINALITY()
INTERNAL_INDEX_LENGTH()
INTERNAL_IS_ENABLED_ROLE()
INTERNAL_IS_MANDATORY_ROLE()
INTERNAL_KEYS_DISABLED()
INTERNAL_MAX_DATA_LENGTH()
INTERNAL_TABLESPACE_AUTOEXTEND_SIZE()
INTERNAL_TABLESPACE_DATA_FREE()
INTERNAL_TABLESPACE_EXTENT_SIZE()
INTERNAL_TABLESPACE_EXTRA()
INTERNAL_TABLESPACE_FREE_EXTENTS()
INTERNAL_TABLESPACE_ID()
INTERNAL_TABLESPACE_INITIAL_SIZE()
INTERNAL_TABLESPACE_LOGFILE_GROUP_NAME()
INTERNAL_TABLESPACE_LOGFILE_GROUP_NUMBER()
INTERNAL_TABLESPACE_MAXIMUM_SIZE()
INTERNAL_TABLESPACE_ROW_FORMAT()
INTERNAL_TABLESPACE_STATUS()
INTERNAL_TABLESPACE_TOTAL_EXTENTS()
INTERNAL_TABLESPACE_TYPE()
INTERNAL_TABLESPACE_VERSION()
INTERNAL_TABLE_ROWS()
INTERNAL_UPDATE_TIME()
以下辅助函数虽然不以 INTERNAL_ 开头,也主要服务 DD 视图/权限/资源组展示:
CAN_ACCESS_COLUMN()
CAN_ACCESS_DATABASE()
CAN_ACCESS_EVENT()
CAN_ACCESS_RESOURCE_GROUP()
CAN_ACCESS_ROUTINE()
CAN_ACCESS_TABLE()
CAN_ACCESS_TRIGGER()
CAN_ACCESS_USER()
CAN_ACCESS_VIEW()
CONVERT_CPU_ID_MASK()
CONVERT_INTERVAL_TO_USER_INTERVAL()
GET_DD_COLUMN_PRIVILEGES()
GET_DD_CREATE_OPTIONS()
GET_DD_INDEX_PRIVATE_DATA()
GET_DD_INDEX_SUB_PART_LENGTH()
GET_DD_PROPERTY_KEY_VALUE()
GET_DD_SCHEMA_OPTIONS()
GET_DD_TABLESPACE_PRIVATE_DATA()
IS_VISIBLE_DD_OBJECT()
REMOVE_DD_PROPERTY_KEY()
AREA()
ASBINARY()
ASTEXT()
ASWKB()
ASWKT()
BUFFER()
CENTROID()
CONVEXHULL()
CROSSES()
DECODE()
DES_DECRYPT()
DES_ENCRYPT()
DIMENSION()
DISJOINT()
DISTANCE()
ENCODE()
ENCRYPT()
ENDPOINT()
ENVELOPE()
EQUALS()
EXTERIORRING()
GEOMCOLLFROMTEXT()
GEOMCOLLFROMWKB()
GEOMETRYCOLLECTIONFROMTEXT()
GEOMETRYCOLLECTIONFROMWKB()
GEOMETRYFROMTEXT()
GEOMETRYFROMWKB()
GEOMETRYN()
GEOMETRYTYPE()
GEOMFROMTEXT()
GEOMFROMWKB()
GLENGTH()
INTERIORRINGN()
INTERSECTS()
ISCLOSED()
ISEMPTY()
ISSIMPLE()
LINEFROMTEXT()
LINEFROMWKB()
LINESTRINGFROMTEXT()
LINESTRINGFROMWKB()
MBREQUAL()
MLINEFROMTEXT()
MLINEFROMWKB()
MPOINTFROMTEXT()
MPOINTFROMWKB()
MPOLYFROMTEXT()
MPOLYFROMWKB()
MULTILINESTRINGFROMTEXT()
MULTILINESTRINGFROMWKB()
MULTIPOINTFROMTEXT()
MULTIPOINTFROMWKB()
MULTIPOLYGONFROMTEXT()
MULTIPOLYGONFROMWKB()
NUMGEOMETRIES()
NUMINTERIORRINGS()
NUMPOINTS()
OVERLAPS()
POINTFROMTEXT()
POINTFROMWKB()
POINTN()
POLYFROMTEXT()
POLYFROMWKB()
POLYGONFROMTEXT()
POLYGONFROMWKB()
SRID()
STARTPOINT()
TOUCHES()
WITHIN()
X()
Y()
消失名称可能代表删除、别名退出或实现入口迁移;不能仅凭集合差证明所有同名 SQL 都不可解析。例如应结合上文删除清单和语法源码核验。新增注册名也不证明其功能第一次出现,别名及内部接口应单独理解。
从官方生命周期页面按 Added/Deprecated/Removed 事件提取名称和版本,仅保留事件版本 ≤8.0.39。这是 8.0 分支事件索引,不是“这些项在 5.7.44 全部不存在”;例如 deadlock_detect、write set、JSON 相关回补必须按正文纠正。新 replica* 名称中也有旧 slave* 别名替换,不能算全新机制。状态量、debug 选项、企业插件变量均可能在内,是否可用以对应发行包和插件为准。
索引只列名称/版本/官方定义入口,含义与默认值应结合正文和链接查阅;没有复制官方说明原文。
| 名称 | 事件版本 | 定义 |
|---|---|---|
Acl_cache_items_count | 8.0.0 | 官方 |
Audit_log_current_size | 8.0.11 | 官方 |
Audit_log_event_max_drop_size | 8.0.11 | 官方 |
Audit_log_events | 8.0.11 | 官方 |
Audit_log_events_filtered | 8.0.11 | 官方 |
Audit_log_events_lost | 8.0.11 | 官方 |
Audit_log_events_written | 8.0.11 | 官方 |
Audit_log_total_size | 8.0.11 | 官方 |
Audit_log_write_waits | 8.0.11 | 官方 |
Authentication_ldap_sasl_supported_methods | 8.0.21 | 官方 |
Caching_sha2_password_rsa_public_key | 8.0.4 | 官方 |
Com_alter_resource_group | 8.0.3 | 官方 |
Com_alter_user_default_role | 8.0.0 | 官方 |
Com_change_replication_source | 8.0.23 | 官方 |
Com_clone | 8.0.2 | 官方 |
Com_create_resource_group | 8.0.3 | 官方 |
Com_create_role | 8.0.0 | 官方 |
Com_drop_resource_group | 8.0.3 | 官方 |
Com_drop_role | 8.0.0 | 官方 |
Com_grant_roles | 8.0.0 | 官方 |
Com_install_component | 8.0.0 | 官方 |
Com_replica_start | 8.0.22 | 官方 |
Com_replica_stop | 8.0.22 | 官方 |
Com_restart | 8.0.4 | 官方 |
Com_revoke_roles | 8.0.0 | 官方 |
Com_set_resource_group | 8.0.3 | 官方 |
Com_set_role | 8.0.0 | 官方 |
Com_show_replica_status | 8.0.22 | 官方 |
Com_show_replicas | 8.0.22 | 官方 |
Com_uninstall_component | 8.0.0 | 官方 |
Compression_algorithm | 8.0.18 | 官方 |
Compression_level | 8.0.18 | 官方 |
Connection_control_delay_generated | 8.0.1 | 官方 |
Current_tls_ca | 8.0.16 | 官方 |
Current_tls_capath | 8.0.16 | 官方 |
Current_tls_cert | 8.0.16 | 官方 |
Current_tls_cipher | 8.0.16 | 官方 |
Current_tls_ciphersuites | 8.0.16 | 官方 |
Current_tls_crl | 8.0.16 | 官方 |
Current_tls_crlpath | 8.0.16 | 官方 |
Current_tls_key | 8.0.16 | 官方 |
Current_tls_version | 8.0.16 | 官方 |
Error_log_buffered_bytes | 8.0.22 | 官方 |
Error_log_buffered_events | 8.0.22 | 官方 |
Error_log_expired_events | 8.0.22 | 官方 |
Error_log_latest_write | 8.0.22 | 官方 |
Firewall_access_denied | 8.0.11 | 官方 |
Firewall_access_granted | 8.0.11 | 官方 |
Firewall_cached_entries | 8.0.11 | 官方 |
Global_connection_memory | 8.0.28 | 官方 |
Innodb_buffer_pool_resize_status_code | 8.0.31 | 官方 |
Innodb_buffer_pool_resize_status_progress | 8.0.31 | 官方 |
Innodb_redo_log_capacity_resized | 8.0.30 | 官方 |
Innodb_redo_log_checkpoint_lsn | 8.0.30 | 官方 |
Innodb_redo_log_current_lsn | 8.0.30 | 官方 |
Innodb_redo_log_enabled | 8.0.21 | 官方 |
Innodb_redo_log_flushed_to_disk_lsn | 8.0.30 | 官方 |
Innodb_redo_log_logical_size | 8.0.30 | 官方 |
Innodb_redo_log_physical_size | 8.0.30 | 官方 |
Innodb_redo_log_read_only | 8.0.30 | 官方 |
Innodb_redo_log_resize_status | 8.0.30 | 官方 |
Innodb_redo_log_uuid | 8.0.30 | 官方 |
Innodb_system_rows_deleted | 8.0.19 | 官方 |
Innodb_system_rows_inserted | 8.0.19 | 官方 |
Innodb_system_rows_read | 8.0.19 | 官方 |
Innodb_system_rows_updated | 8.0.19 | 官方 |
Innodb_undo_tablespaces_active | 8.0.14 | 官方 |
Innodb_undo_tablespaces_explicit | 8.0.14 | 官方 |
Innodb_undo_tablespaces_implicit | 8.0.14 | 官方 |
Innodb_undo_tablespaces_total | 8.0.14 | 官方 |
Mysqlx_bytes_received_compressed_payload | 8.0.19 | 官方 |
Mysqlx_bytes_received_uncompressed_frame | 8.0.19 | 官方 |
Mysqlx_bytes_sent_compressed_payload | 8.0.19 | 官方 |
Mysqlx_bytes_sent_uncompressed_frame | 8.0.19 | 官方 |
Mysqlx_compression_algorithm | 8.0.20 | 官方 |
Mysqlx_compression_level | 8.0.20 | 官方 |
Replica_open_temp_tables | 8.0.26 | 官方 |
Replica_rows_last_search_algorithm_used | 8.0.26 | 官方 |
Resource_group_supported | 8.0.31 | 官方 |
Rpl_semi_sync_replica_status | 8.0.26 | 官方 |
Rpl_semi_sync_source_clients | 8.0.26 | 官方 |
Rpl_semi_sync_source_net_avg_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_source_net_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_source_net_waits | 8.0.26 | 官方 |
Rpl_semi_sync_source_no_times | 8.0.26 | 官方 |
Rpl_semi_sync_source_no_tx | 8.0.26 | 官方 |
Rpl_semi_sync_source_status | 8.0.26 | 官方 |
Rpl_semi_sync_source_timefunc_failures | 8.0.26 | 官方 |
Rpl_semi_sync_source_tx_avg_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_source_tx_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_source_tx_waits | 8.0.26 | 官方 |
Rpl_semi_sync_source_wait_pos_backtraverse | 8.0.26 | 官方 |
Rpl_semi_sync_source_wait_sessions | 8.0.26 | 官方 |
Rpl_semi_sync_source_yes_tx | 8.0.26 | 官方 |
Secondary_engine_execution_count | 8.0.13 | 官方 |
Ssl_session_cache_timeout | 8.0.29 | 官方 |
Telemetry_traces_supported | 8.0.33 | 官方 |
Tls_library_version | 8.0.30 | 官方 |
activate_all_roles_on_login | 8.0.2 | 官方 |
admin-ssl | 8.0.21 | 官方 |
admin_address | 8.0.14 | 官方 |
admin_port | 8.0.14 | 官方 |
admin_ssl_ca | 8.0.21 | 官方 |
admin_ssl_capath | 8.0.21 | 官方 |
admin_ssl_cert | 8.0.21 | 官方 |
admin_ssl_cipher | 8.0.21 | 官方 |
admin_ssl_crl | 8.0.21 | 官方 |
admin_ssl_crlpath | 8.0.21 | 官方 |
admin_ssl_key | 8.0.21 | 官方 |
admin_tls_ciphersuites | 8.0.21 | 官方 |
admin_tls_version | 8.0.21 | 官方 |
audit-log | 8.0.11 | 官方 |
audit_log_buffer_size | 8.0.11 | 官方 |
audit_log_compression | 8.0.11 | 官方 |
audit_log_connection_policy | 8.0.11 | 官方 |
audit_log_current_session | 8.0.11 | 官方 |
audit_log_database | 8.0.33 | 官方 |
audit_log_disable | 8.0.28 | 官方 |
audit_log_encryption | 8.0.11 | 官方 |
audit_log_exclude_accounts | 8.0.11 | 官方 |
audit_log_file | 8.0.11 | 官方 |
audit_log_filter_id | 8.0.11 | 官方 |
audit_log_flush | 8.0.11 | 官方 |
audit_log_flush_interval_seconds | 8.0.34 | 官方 |
audit_log_format | 8.0.11 | 官方 |
audit_log_format_unix_timestamp | 8.0.26 | 官方 |
audit_log_include_accounts | 8.0.11 | 官方 |
audit_log_max_size | 8.0.26 | 官方 |
audit_log_password_history_keep_days | 8.0.17 | 官方 |
audit_log_policy | 8.0.11 | 官方 |
audit_log_prune_seconds | 8.0.24 | 官方 |
audit_log_read_buffer_size | 8.0.11 | 官方 |
audit_log_rotate_on_size | 8.0.11 | 官方 |
audit_log_statement_policy | 8.0.11 | 官方 |
audit_log_strategy | 8.0.11 | 官方 |
authentication_fido_rp_id | 8.0.27 | 官方 |
authentication_kerberos_service_key_tab | 8.0.26 | 官方 |
authentication_kerberos_service_principal | 8.0.26 | 官方 |
authentication_ldap_sasl_auth_method_name | 8.0.11 | 官方 |
authentication_ldap_sasl_bind_base_dn | 8.0.11 | 官方 |
authentication_ldap_sasl_bind_root_dn | 8.0.11 | 官方 |
authentication_ldap_sasl_bind_root_pwd | 8.0.11 | 官方 |
authentication_ldap_sasl_ca_path | 8.0.11 | 官方 |
authentication_ldap_sasl_group_search_attr | 8.0.11 | 官方 |
authentication_ldap_sasl_group_search_filter | 8.0.11 | 官方 |
authentication_ldap_sasl_init_pool_size | 8.0.11 | 官方 |
authentication_ldap_sasl_log_status | 8.0.11 | 官方 |
authentication_ldap_sasl_max_pool_size | 8.0.11 | 官方 |
authentication_ldap_sasl_referral | 8.0.20 | 官方 |
authentication_ldap_sasl_server_host | 8.0.11 | 官方 |
authentication_ldap_sasl_server_port | 8.0.11 | 官方 |
authentication_ldap_sasl_tls | 8.0.11 | 官方 |
authentication_ldap_sasl_user_search_attr | 8.0.11 | 官方 |
authentication_ldap_simple_auth_method_name | 8.0.11 | 官方 |
authentication_ldap_simple_bind_base_dn | 8.0.11 | 官方 |
authentication_ldap_simple_bind_root_dn | 8.0.11 | 官方 |
authentication_ldap_simple_bind_root_pwd | 8.0.11 | 官方 |
authentication_ldap_simple_ca_path | 8.0.11 | 官方 |
authentication_ldap_simple_group_search_attr | 8.0.11 | 官方 |
authentication_ldap_simple_group_search_filter | 8.0.11 | 官方 |
authentication_ldap_simple_init_pool_size | 8.0.11 | 官方 |
authentication_ldap_simple_log_status | 8.0.11 | 官方 |
authentication_ldap_simple_max_pool_size | 8.0.11 | 官方 |
authentication_ldap_simple_referral | 8.0.20 | 官方 |
authentication_ldap_simple_server_host | 8.0.11 | 官方 |
authentication_ldap_simple_server_port | 8.0.11 | 官方 |
authentication_ldap_simple_tls | 8.0.11 | 官方 |
authentication_ldap_simple_user_search_attr | 8.0.11 | 官方 |
authentication_policy | 8.0.27 | 官方 |
authentication_windows_log_level | 8.0.11 | 官方 |
authentication_windows_use_principal_name | 8.0.11 | 官方 |
binlog_encryption | 8.0.14 | 官方 |
binlog_expire_logs_auto_purge | 8.0.29 | 官方 |
binlog_expire_logs_seconds | 8.0.1 | 官方 |
binlog_rotate_encryption_master_key_at_startup | 8.0.14 | 官方 |
binlog_row_metadata | 8.0.1 | 官方 |
binlog_row_value_options | 8.0.3 | 官方 |
binlog_transaction_compression | 8.0.20 | 官方 |
binlog_transaction_compression_level_zstd | 8.0.20 | 官方 |
binlog_transaction_dependency_history_size | 8.0.1 | 官方 |
binlog_transaction_dependency_tracking | 8.0.1 | 官方 |
build_id | 8.0.31 | 官方 |
caching_sha2_password_auto_generate_rsa_keys | 8.0.4 | 官方 |
caching_sha2_password_digest_rounds | 8.0.24 | 官方 |
caching_sha2_password_private_key_path | 8.0.3 | 官方 |
caching_sha2_password_public_key_path | 8.0.3 | 官方 |
clone_autotune_concurrency | 8.0.17 | 官方 |
clone_block_ddl | 8.0.27 | 官方 |
clone_buffer_size | 8.0.17 | 官方 |
clone_ddl_timeout | 8.0.17 | 官方 |
clone_delay_after_data_drop | 8.0.29 | 官方 |
clone_donor_timeout_after_network_failure | 8.0.24 | 官方 |
clone_enable_compression | 8.0.17 | 官方 |
clone_max_concurrency | 8.0.17 | 官方 |
clone_max_data_bandwidth | 8.0.17 | 官方 |
clone_max_network_bandwidth | 8.0.17 | 官方 |
clone_ssl_ca | 8.0.14 | 官方 |
clone_ssl_cert | 8.0.14 | 官方 |
clone_ssl_key | 8.0.14 | 官方 |
clone_valid_donor_list | 8.0.17 | 官方 |
component_scheduler.enabled | 8.0.34 | 官方 |
connection_control_failed_connections_threshold | 8.0.1 | 官方 |
connection_control_max_connection_delay | 8.0.1 | 官方 |
connection_control_min_connection_delay | 8.0.1 | 官方 |
connection_memory_chunk_size | 8.0.28 | 官方 |
connection_memory_limit | 8.0.28 | 官方 |
create_admin_listener_thread | 8.0.14 | 官方 |
cte_max_recursion_depth | 8.0.3 | 官方 |
ddl-rewriter | 8.0.16 | 官方 |
default_collation_for_utf8mb4 | 8.0.11 | 官方 |
default_table_encryption | 8.0.16 | 官方 |
dragnet.Status | 8.0.12 | 官方 |
dragnet.log_error_filter_rules | 8.0.4 | 官方 |
early-plugin-load | 8.0.0 | 官方 |
enterprise_encryption.maximum_rsa_key_size | 8.0.30 | 官方 |
enterprise_encryption.rsa_support_legacy_padding | 8.0.30 | 官方 |
explain_format | 8.0.32 | 官方 |
generated_random_password_length | 8.0.18 | 官方 |
global_connection_memory_limit | 8.0.28 | 官方 |
global_connection_memory_tracking | 8.0.28 | 官方 |
group_replication_advertise_recovery_endpoints | 8.0.21 | 官方 |
group_replication_autorejoin_tries | 8.0.16 | 官方 |
group_replication_clone_threshold | 8.0.17 | 官方 |
group_replication_communication_debug_options | 8.0.3 | 官方 |
group_replication_communication_max_message_size | 8.0.16 | 官方 |
group_replication_communication_stack | 8.0.27 | 官方 |
group_replication_consistency | 8.0.14 | 官方 |
group_replication_exit_state_action | 8.0.12 | 官方 |
group_replication_flow_control_hold_percent | 8.0.2 | 官方 |
group_replication_flow_control_max_quota | 8.0.2 | 官方 |
group_replication_flow_control_member_quota_percent | 8.0.2 | 官方 |
group_replication_flow_control_min_quota | 8.0.2 | 官方 |
group_replication_flow_control_min_recovery_quota | 8.0.2 | 官方 |
group_replication_flow_control_period | 8.0.2 | 官方 |
group_replication_flow_control_release_percent | 8.0.2 | 官方 |
group_replication_ip_allowlist | 8.0.22 | 官方 |
group_replication_member_expel_timeout | 8.0.13 | 官方 |
group_replication_member_weight | 8.0.2 | 官方 |
group_replication_message_cache_size | 8.0.16 | 官方 |
group_replication_paxos_single_leader | 8.0.27 | 官方 |
group_replication_recovery_compression_algorithms | 8.0.18 | 官方 |
group_replication_recovery_get_public_key | 8.0.4 | 官方 |
group_replication_recovery_public_key_path | 8.0.4 | 官方 |
group_replication_recovery_tls_ciphersuites | 8.0.19 | 官方 |
group_replication_recovery_tls_version | 8.0.19 | 官方 |
group_replication_recovery_zstd_compression_level | 8.0.18 | 官方 |
group_replication_tls_source | 8.0.21 | 官方 |
group_replication_unreachable_majority_timeout | 8.0.2 | 官方 |
group_replication_view_change_uuid | 8.0.26 | 官方 |
histogram_generation_max_mem_size | 8.0.2 | 官方 |
immediate_server_version | 8.0.14 | 官方 |
information_schema_stats_expiry | 8.0.3 | 官方 |
init_replica | 8.0.26 | 官方 |
innodb-dedicated-server | 8.0.3 | 官方 |
innodb_buffer_pool_debug | 8.0.0 | 官方 |
innodb_buffer_pool_in_core_file | 8.0.14 | 官方 |
innodb_checkpoint_disabled | 8.0.2 | 官方 |
innodb_ddl_buffer_size | 8.0.27 | 官方 |
innodb_ddl_log_crash_reset_debug | 8.0.3 | 官方 |
innodb_ddl_threads | 8.0.27 | 官方 |
innodb_deadlock_detect | 8.0.0 | 官方 |
innodb_directories | 8.0.4 | 官方 |
innodb_doublewrite_batch_size | 8.0.20 | 官方 |
innodb_doublewrite_dir | 8.0.20 | 官方 |
innodb_doublewrite_files | 8.0.20 | 官方 |
innodb_doublewrite_pages | 8.0.20 | 官方 |
innodb_extend_and_initialize | 8.0.22 | 官方 |
innodb_fsync_threshold | 8.0.13 | 官方 |
innodb_idle_flush_pct | 8.0.18 | 官方 |
innodb_log_checkpoint_fuzzy_now | 8.0.13 | 官方 |
innodb_log_spin_cpu_abs_lwm | 8.0.11 | 官方 |
innodb_log_spin_cpu_pct_hwm | 8.0.11 | 官方 |
innodb_log_wait_for_flush_spin_hwm | 8.0.11 | 官方 |
innodb_log_writer_threads | 8.0.22 | 官方 |
innodb_parallel_read_threads | 8.0.14 | 官方 |
innodb_print_ddl_logs | 8.0.3 | 官方 |
innodb_redo_log_archive_dirs | 8.0.17 | 官方 |
innodb_redo_log_capacity | 8.0.30 | 官方 |
innodb_redo_log_encrypt | 8.0.1 | 官方 |
innodb_scan_directories | 8.0.2 | 官方 |
innodb_segment_reserve_factor | 8.0.26 | 官方 |
innodb_spin_wait_pause_multiplier | 8.0.16 | 官方 |
innodb_stats_include_delete_marked | 8.0.1 | 官方 |
innodb_temp_tablespaces_dir | 8.0.13 | 官方 |
innodb_tmpdir | 8.0.0 | 官方 |
innodb_undo_log_encrypt | 8.0.1 | 官方 |
innodb_use_fdatasync | 8.0.26 | 官方 |
innodb_validate_tablespace_paths | 8.0.21 | 官方 |
internal_tmp_mem_storage_engine | 8.0.2 | 官方 |
keyring-migration-destination | 8.0.4 | 官方 |
keyring-migration-host | 8.0.4 | 官方 |
keyring-migration-password | 8.0.4 | 官方 |
keyring-migration-port | 8.0.4 | 官方 |
keyring-migration-socket | 8.0.4 | 官方 |
keyring-migration-source | 8.0.4 | 官方 |
keyring-migration-to-component | 8.0.24 | 官方 |
keyring-migration-user | 8.0.4 | 官方 |
keyring_aws_cmk_id | 8.0.11 | 官方 |
keyring_aws_conf_file | 8.0.11 | 官方 |
keyring_aws_data_file | 8.0.11 | 官方 |
keyring_aws_region | 8.0.11 | 官方 |
keyring_encrypted_file_data | 8.0.11 | 官方 |
keyring_encrypted_file_password | 8.0.11 | 官方 |
keyring_hashicorp_auth_path | 8.0.18 | 官方 |
keyring_hashicorp_ca_path | 8.0.18 | 官方 |
keyring_hashicorp_caching | 8.0.18 | 官方 |
keyring_hashicorp_commit_auth_path | 8.0.18 | 官方 |
keyring_hashicorp_commit_ca_path | 8.0.18 | 官方 |
keyring_hashicorp_commit_caching | 8.0.18 | 官方 |
keyring_hashicorp_commit_role_id | 8.0.18 | 官方 |
keyring_hashicorp_commit_server_url | 8.0.18 | 官方 |
keyring_hashicorp_commit_store_path | 8.0.18 | 官方 |
keyring_hashicorp_role_id | 8.0.18 | 官方 |
keyring_hashicorp_secret_id | 8.0.18 | 官方 |
keyring_hashicorp_server_url | 8.0.18 | 官方 |
keyring_hashicorp_store_path | 8.0.18 | 官方 |
keyring_oci_ca_certificate | 8.0.22 | 官方 |
keyring_oci_compartment | 8.0.22 | 官方 |
keyring_oci_encryption_endpoint | 8.0.22 | 官方 |
keyring_oci_key_file | 8.0.22 | 官方 |
keyring_oci_key_fingerprint | 8.0.22 | 官方 |
keyring_oci_management_endpoint | 8.0.22 | 官方 |
keyring_oci_master_key | 8.0.22 | 官方 |
keyring_oci_secrets_endpoint | 8.0.22 | 官方 |
keyring_oci_tenancy | 8.0.22 | 官方 |
keyring_oci_user | 8.0.22 | 官方 |
keyring_oci_vaults_endpoint | 8.0.22 | 官方 |
keyring_oci_virtual_vault | 8.0.22 | 官方 |
keyring_okv_conf_dir | 8.0.11 | 官方 |
keyring_operations | 8.0.4 | 官方 |
lock_order | 8.0.17 | 官方 |
lock_order_debug_loop | 8.0.17 | 官方 |
lock_order_debug_missing_arc | 8.0.17 | 官方 |
lock_order_debug_missing_key | 8.0.17 | 官方 |
lock_order_debug_missing_unlock | 8.0.17 | 官方 |
lock_order_dependencies | 8.0.17 | 官方 |
lock_order_extra_dependencies | 8.0.17 | 官方 |
lock_order_output_directory | 8.0.17 | 官方 |
lock_order_print_txt | 8.0.17 | 官方 |
lock_order_trace_loop | 8.0.17 | 官方 |
lock_order_trace_missing_arc | 8.0.17 | 官方 |
lock_order_trace_missing_key | 8.0.17 | 官方 |
lock_order_trace_missing_unlock | 8.0.17 | 官方 |
log_error_filter_rules | 8.0.2 | 官方 |
log_error_services | 8.0.2 | 官方 |
log_error_suppression_list | 8.0.13 | 官方 |
log_replica_updates | 8.0.26 | 官方 |
log_slow_extra | 8.0.14 | 官方 |
log_slow_replica_statements | 8.0.26 | 官方 |
mandatory_roles | 8.0.2 | 官方 |
mysql_firewall_mode | 8.0.11 | 官方 |
mysql_firewall_trace | 8.0.11 | 官方 |
mysqlx | 8.0.11 | 官方 |
mysqlx_compression_algorithms | 8.0.19 | 官方 |
mysqlx_deflate_default_compression_level | 8.0.20 | 官方 |
mysqlx_deflate_max_client_compression_level | 8.0.20 | 官方 |
mysqlx_interactive_timeout | 8.0.4 | 官方 |
mysqlx_lz4_default_compression_level | 8.0.20 | 官方 |
mysqlx_lz4_max_client_compression_level | 8.0.20 | 官方 |
mysqlx_read_timeout | 8.0.4 | 官方 |
mysqlx_wait_timeout | 8.0.4 | 官方 |
mysqlx_write_timeout | 8.0.4 | 官方 |
mysqlx_zstd_default_compression_level | 8.0.20 | 官方 |
mysqlx_zstd_max_client_compression_level | 8.0.20 | 官方 |
named_pipe_full_access_group | 8.0.14 | 官方 |
no-dd-upgrade | 8.0.4 | 官方 |
no-monitor | 8.0.12 | 官方 |
original_commit_timestamp | 8.0.1 | 官方 |
original_server_version | 8.0.14 | 官方 |
partial_revokes | 8.0.16 | 官方 |
password_history | 8.0.3 | 官方 |
password_require_current | 8.0.13 | 官方 |
password_reuse_interval | 8.0.3 | 官方 |
performance-schema-consumer-events-statements-cpu | 8.0.28 | 官方 |
performance_schema_max_digest_sample_age | 8.0.3 | 官方 |
performance_schema_show_processlist | 8.0.22 | 官方 |
persist_only_admin_x509_subject | 8.0.14 | 官方 |
persist_sensitive_variables_in_plaintext | 8.0.29 | 官方 |
persisted_globals_load | 8.0.0 | 官方 |
print_identified_with_as_hex | 8.0.17 | 官方 |
protocol_compression_algorithms | 8.0.18 | 官方 |
pseudo_replica_mode | 8.0.26 | 官方 |
regexp_stack_limit | 8.0.4 | 官方 |
regexp_time_limit | 8.0.4 | 官方 |
replica_checkpoint_group | 8.0.26 | 官方 |
replica_checkpoint_period | 8.0.26 | 官方 |
replica_compressed_protocol | 8.0.26 | 官方 |
replica_exec_mode | 8.0.26 | 官方 |
replica_load_tmpdir | 8.0.26 | 官方 |
replica_max_allowed_packet | 8.0.26 | 官方 |
replica_net_timeout | 8.0.26 | 官方 |
replica_parallel_type | 8.0.26 | 官方 |
replica_parallel_workers | 8.0.26 | 官方 |
replica_pending_jobs_size_max | 8.0.26 | 官方 |
replica_preserve_commit_order | 8.0.26 | 官方 |
replica_skip_errors | 8.0.26 | 官方 |
replica_sql_verify_checksum | 8.0.26 | 官方 |
replica_transaction_retries | 8.0.26 | 官方 |
replica_type_conversions | 8.0.26 | 官方 |
replication_optimize_for_static_plugin_config | 8.0.23 | 官方 |
replication_sender_observe_commit_only | 8.0.23 | 官方 |
require_row_format | 8.0.19 | 官方 |
resultset_metadata | 8.0.3 | 官方 |
rewriter_enabled_for_threads_without_privilege_checks | 8.0.31 | 官方 |
rpl_read_size | 8.0.11 | 官方 |
rpl_semi_sync_replica_enabled | 8.0.26 | 官方 |
rpl_semi_sync_replica_trace_level | 8.0.26 | 官方 |
rpl_semi_sync_source_enabled | 8.0.26 | 官方 |
rpl_semi_sync_source_timeout | 8.0.26 | 官方 |
rpl_semi_sync_source_trace_level | 8.0.26 | 官方 |
rpl_semi_sync_source_wait_for_replica_count | 8.0.26 | 官方 |
rpl_semi_sync_source_wait_no_replica | 8.0.26 | 官方 |
rpl_semi_sync_source_wait_point | 8.0.26 | 官方 |
rpl_stop_replica_timeout | 8.0.26 | 官方 |
schema_definition_cache | 8.0.0 | 官方 |
secondary_engine_cost_threshold | 8.0.16 | 官方 |
select_into_buffer_size | 8.0.22 | 官方 |
select_into_disk_sync | 8.0.22 | 官方 |
select_into_disk_sync_delay | 8.0.22 | 官方 |
show-replica-auth-info | 8.0.26 | 官方 |
show_create_table_skip_secondary_engine | 8.0.18 | 官方 |
show_create_table_verbosity | 8.0.11 | 官方 |
show_gipk_in_create_table_and_information_schema | 8.0.30 | 官方 |
skip-replica-start | 8.0.26 | 官方 |
source_verify_checksum | 8.0.26 | 官方 |
sql_generate_invisible_primary_key | 8.0.30 | 官方 |
sql_replica_skip_counter | 8.0.26 | 官方 |
sql_require_primary_key | 8.0.13 | 官方 |
ssl_fips_mode | 8.0.11 | 官方 |
ssl_session_cache_mode | 8.0.29 | 官方 |
ssl_session_cache_timeout | 8.0.29 | 官方 |
sync_source_info | 8.0.26 | 官方 |
syseventlog.facility | 8.0.13 | 官方 |
syseventlog.include_pid | 8.0.13 | 官方 |
syseventlog.tag | 8.0.13 | 官方 |
table_encryption_privilege_check | 8.0.16 | 官方 |
tablespace_definition_cache | 8.0.0 | 官方 |
temptable_max_mmap | 8.0.23 | 官方 |
temptable_max_ram | 8.0.2 | 官方 |
temptable_use_mmap | 8.0.16 | 官方 |
terminology_use_previous | 8.0.26 | 官方 |
thread_pool_algorithm | 8.0.11 | 官方 |
thread_pool_dedicated_listeners | 8.0.23 | 官方 |
thread_pool_high_priority_connection | 8.0.11 | 官方 |
thread_pool_max_active_query_threads | 8.0.19 | 官方 |
thread_pool_max_transactions_limit | 8.0.23 | 官方 |
thread_pool_max_unused_threads | 8.0.11 | 官方 |
thread_pool_prio_kickup_timer | 8.0.11 | 官方 |
thread_pool_query_threads_per_group | 8.0.31 | 官方 |
thread_pool_size | 8.0.11 | 官方 |
thread_pool_stall_limit | 8.0.11 | 官方 |
thread_pool_transaction_delay | 8.0.31 | 官方 |
tls_ciphersuites | 8.0.16 | 官方 |
upgrade | 8.0.16 | 官方 |
use_secondary_engine | 8.0.13 | 官方 |
validate-config | 8.0.16 | 官方 |
validate_password.changed_characters_percentage | 8.0.34 | 官方 |
validate_password.check_user_name | 8.0.4 | 官方 |
validate_password.dictionary_file | 8.0.4 | 官方 |
validate_password.dictionary_file_last_parsed | 8.0.4 | 官方 |
validate_password.dictionary_file_words_count | 8.0.4 | 官方 |
validate_password.length | 8.0.4 | 官方 |
validate_password.mixed_case_count | 8.0.4 | 官方 |
validate_password.number_count | 8.0.4 | 官方 |
validate_password.policy | 8.0.4 | 官方 |
validate_password.special_char_count | 8.0.4 | 官方 |
version_compile_zlib | 8.0.11 | 官方 |
windowing_use_high_precision | 8.0.2 | 官方 |
| 名称 | 事件版本 | 定义 |
|---|---|---|
Compression | 8.0.18 | 官方 |
Rpl_semi_sync_master_clients | 8.0.26 | 官方 |
Rpl_semi_sync_master_net_avg_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_master_net_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_master_net_waits | 8.0.26 | 官方 |
Rpl_semi_sync_master_no_times | 8.0.26 | 官方 |
Rpl_semi_sync_master_no_tx | 8.0.26 | 官方 |
Rpl_semi_sync_master_status | 8.0.26 | 官方 |
Rpl_semi_sync_master_timefunc_failures | 8.0.26 | 官方 |
Rpl_semi_sync_master_tx_avg_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_master_tx_wait_time | 8.0.26 | 官方 |
Rpl_semi_sync_master_tx_waits | 8.0.26 | 官方 |
Rpl_semi_sync_master_wait_pos_backtraverse | 8.0.26 | 官方 |
Rpl_semi_sync_master_wait_sessions | 8.0.26 | 官方 |
Rpl_semi_sync_master_yes_tx | 8.0.26 | 官方 |
Rpl_semi_sync_slave_status | 8.0.26 | 官方 |
Rsa_public_key | 8.0.16 | 官方 |
Slave_open_temp_tables | 8.0.26 | 官方 |
Slave_rows_last_search_algorithm_used | 8.0.26 | 官方 |
abort-slave-event-count | 8.0.29 | 官方 |
admin-ssl | 8.0.26 | 官方 |
audit_log_connection_policy | 8.0.34 | 官方 |
audit_log_exclude_accounts | 8.0.34 | 官方 |
audit_log_include_accounts | 8.0.34 | 官方 |
audit_log_policy | 8.0.34 | 官方 |
audit_log_statement_policy | 8.0.34 | 官方 |
authentication_fido_rp_id | 8.0.35 | 官方 |
binlog_format | 8.0.34 | 官方 |
binlog_transaction_dependency_tracking | 8.0.35 | 官方 |
character-set-client-handshake | 8.0.35 | 官方 |
daemon_memcached_enable_binlog | 8.0.22 | 官方 |
daemon_memcached_engine_lib_name | 8.0.22 | 官方 |
daemon_memcached_engine_lib_path | 8.0.22 | 官方 |
daemon_memcached_option | 8.0.22 | 官方 |
daemon_memcached_r_batch_size | 8.0.22 | 官方 |
daemon_memcached_w_batch_size | 8.0.22 | 官方 |
default_authentication_plugin | 8.0.27 | 官方 |
disconnect-slave-event-count | 8.0.29 | 官方 |
expire_logs_days | 8.0.3 | 官方 |
group_replication_ip_whitelist | 8.0.22 | 官方 |
group_replication_primary_member | 8.0.4 | 官方 |
group_replication_recovery_complete_at | 8.0.34 | 官方 |
have_openssl | 8.0.26 | 官方 |
have_ssl | 8.0.26 | 官方 |
init_slave | 8.0.26 | 官方 |
innodb_api_bk_commit_interval | 8.0.22 | 官方 |
innodb_api_disable_rowlock | 8.0.22 | 官方 |
innodb_api_enable_binlog | 8.0.22 | 官方 |
innodb_api_enable_mdl | 8.0.22 | 官方 |
innodb_api_trx_level | 8.0.22 | 官方 |
innodb_log_file_size | 8.0.30 | 官方 |
innodb_log_files_in_group | 8.0.30 | 官方 |
innodb_undo_tablespaces | 8.0.4 | 官方 |
keyring_encrypted_file_data | 8.0.34 | 官方 |
keyring_encrypted_file_password | 8.0.34 | 官方 |
keyring_file_data | 8.0.34 | 官方 |
keyring_oci_ca_certificate | 8.0.31 | 官方 |
keyring_oci_compartment | 8.0.31 | 官方 |
keyring_oci_encryption_endpoint | 8.0.31 | 官方 |
keyring_oci_key_file | 8.0.31 | 官方 |
keyring_oci_key_fingerprint | 8.0.31 | 官方 |
keyring_oci_management_endpoint | 8.0.31 | 官方 |
keyring_oci_master_key | 8.0.31 | 官方 |
keyring_oci_secrets_endpoint | 8.0.31 | 官方 |
keyring_oci_tenancy | 8.0.31 | 官方 |
keyring_oci_user | 8.0.31 | 官方 |
keyring_oci_vaults_endpoint | 8.0.31 | 官方 |
keyring_oci_virtual_vault | 8.0.31 | 官方 |
log_bin_trust_function_creators | 8.0.34 | 官方 |
log_bin_use_v1_row_events | 8.0.18 | 官方 |
log_slave_updates | 8.0.26 | 官方 |
log_slow_slave_statements | 8.0.26 | 官方 |
log_statements_unsafe_for_binlog | 8.0.34 | 官方 |
log_syslog | 8.0.2 | 官方 |
master-info-file | 8.0.18 | 官方 |
master_info_repository | 8.0.23 | 官方 |
master_verify_checksum | 8.0.26 | 官方 |
max_length_for_sort_data | 8.0.20 | 官方 |
myisam_repair_threads | 8.0.29 | 官方 |
mysql_native_password_proxy_users | 8.0.16 | 官方 |
new | 8.0.35 | 官方 |
no-dd-upgrade | 8.0.16 | 官方 |
old | 8.0.35 | 官方 |
old-style-user-limits | 8.0.30 | 官方 |
performance_schema_show_processlist | 8.0.35 | 官方 |
pseudo_slave_mode | 8.0.26 | 官方 |
query_prealloc_size | 8.0.29 | 官方 |
relay_log_info_file | 8.0.18 | 官方 |
relay_log_info_repository | 8.0.23 | 官方 |
replica_parallel_type | 8.0.29 | 官方 |
rpl_semi_sync_master_enabled | 8.0.26 | 官方 |
rpl_semi_sync_master_timeout | 8.0.26 | 官方 |
rpl_semi_sync_master_trace_level | 8.0.26 | 官方 |
rpl_semi_sync_master_wait_for_slave_count | 8.0.26 | 官方 |
rpl_semi_sync_master_wait_point | 8.0.26 | 官方 |
rpl_semi_sync_slave_enabled | 8.0.26 | 官方 |
rpl_semi_sync_slave_trace_level | 8.0.26 | 官方 |
rpl_stop_slave_timeout | 8.0.26 | 官方 |
safe-user-create | 8.0.11 | 官方 |
sha256_password_auto_generate_rsa_keys | 8.0.16 | 官方 |
sha256_password_private_key_path | 8.0.16 | 官方 |
sha256_password_proxy_users | 8.0.16 | 官方 |
sha256_password_public_key_path | 8.0.16 | 官方 |
show-slave-auth-info | 8.0.26 | 官方 |
skip-character-set-client-handshake | 8.0.35 | 官方 |
skip-host-cache | 8.0.30 | 官方 |
skip-new | 8.0.35 | 官方 |
skip-slave-start | 8.0.26 | 官方 |
skip-ssl | 8.0.26 | 官方 |
slave-skip-errors | 8.0.26 | 官方 |
slave_checkpoint_group | 8.0.26 | 官方 |
slave_checkpoint_period | 8.0.26 | 官方 |
slave_compressed_protocol | 8.0.18 | 官方 |
slave_exec_mode | 8.0.26 | 官方 |
slave_load_tmpdir | 8.0.26 | 官方 |
slave_max_allowed_packet | 8.0.26 | 官方 |
slave_net_timeout | 8.0.26 | 官方 |
slave_parallel_type | 8.0.26 | 官方 |
slave_parallel_workers | 8.0.26 | 官方 |
slave_pending_jobs_size_max | 8.0.26 | 官方 |
slave_preserve_commit_order | 8.0.26 | 官方 |
slave_rows_search_algorithms | 8.0.18 | 官方 |
slave_sql_verify_checksum | 8.0.26 | 官方 |
slave_transaction_retries | 8.0.26 | 官方 |
slave_type_conversions | 8.0.26 | 官方 |
sql_slave_skip_counter | 8.0.26 | 官方 |
ssl | 8.0.26 | 官方 |
ssl_fips_mode | 8.0.34 | 官方 |
symbolic-links | 8.0.2 | 官方 |
sync_master_info | 8.0.26 | 官方 |
sync_relay_log_info | 8.0.34 | 官方 |
temptable_use_mmap | 8.0.26 | 官方 |
transaction_prealloc_size | 8.0.29 | 官方 |
transaction_write_set_extraction | 8.0.26 | 官方 |
| 名称 | 事件版本 | 定义 |
|---|---|---|
Com_alter_db_upgrade | 8.0.0 | 官方 |
Innodb_available_undo_logs | 8.0.2 | 官方 |
Qcache_free_blocks | 8.0.3 | 官方 |
Qcache_free_memory | 8.0.3 | 官方 |
Qcache_hits | 8.0.3 | 官方 |
Qcache_inserts | 8.0.3 | 官方 |
Qcache_lowmem_prunes | 8.0.3 | 官方 |
Qcache_not_cached | 8.0.3 | 官方 |
Qcache_queries_in_cache | 8.0.3 | 官方 |
Qcache_total_blocks | 8.0.3 | 官方 |
Slave_heartbeat_period | 8.0.1 | 官方 |
Slave_last_heartbeat | 8.0.1 | 官方 |
Slave_received_heartbeats | 8.0.1 | 官方 |
Slave_retried_transactions | 8.0.1 | 官方 |
Slave_running | 8.0.1 | 官方 |
bootstrap | 8.0.0 | 官方 |
date_format | 8.0.3 | 官方 |
datetime_format | 8.0.3 | 官方 |
des-key-file | 8.0.3 | 官方 |
group_replication_allow_local_disjoint_gtids_join | 8.0.4 | 官方 |
have_crypt | 8.0.3 | 官方 |
ignore-db-dir | 8.0.0 | 官方 |
ignore_builtin_innodb | 8.0.3 | 官方 |
ignore_db_dirs | 8.0.0 | 官方 |
innodb_checksums | 8.0.0 | 官方 |
innodb_disable_resize_buffer_pool_debug | 8.0.0 | 官方 |
innodb_file_format | 8.0.0 | 官方 |
innodb_file_format_check | 8.0.0 | 官方 |
innodb_file_format_max | 8.0.0 | 官方 |
innodb_large_prefix | 8.0.0 | 官方 |
innodb_locks_unsafe_for_binlog | 8.0.0 | 官方 |
innodb_scan_directories | 8.0.4 | 官方 |
innodb_stats_sample_pages | 8.0.0 | 官方 |
innodb_support_xa | 8.0.0 | 官方 |
innodb_undo_logs | 8.0.2 | 官方 |
internal_tmp_disk_storage_engine | 8.0.16 | 官方 |
log-warnings | 8.0.3 | 官方 |
log_builtin_as_identified_by_password | 8.0.11 | 官方 |
log_error_filter_rules | 8.0.4 | 官方 |
log_syslog | 8.0.13 | 官方 |
log_syslog_facility | 8.0.13 | 官方 |
log_syslog_include_pid | 8.0.13 | 官方 |
log_syslog_tag | 8.0.13 | 官方 |
max_tmp_tables | 8.0.3 | 官方 |
metadata_locks_cache_size | 8.0.13 | 官方 |
metadata_locks_hash_instances | 8.0.13 | 官方 |
multi_range_count | 8.0.3 | 官方 |
myisam_repair_threads | 8.0.30 | 官方 |
old_passwords | 8.0.11 | 官方 |
partition | 8.0.0 | 官方 |
query_cache_limit | 8.0.3 | 官方 |
query_cache_min_res_unit | 8.0.3 | 官方 |
query_cache_size | 8.0.3 | 官方 |
query_cache_type | 8.0.3 | 官方 |
query_cache_wlock_invalidate | 8.0.3 | 官方 |
secure_auth | 8.0.3 | 官方 |
show_compatibility_56 | 8.0.1 | 官方 |
skip-partition | 8.0.0 | 官方 |
sync_frm | 8.0.0 | 官方 |
temp-pool | 8.0.1 | 官方 |
time_format | 8.0.3 | 官方 |
tx_isolation | 8.0.3 | 官方 |
tx_read_only | 8.0.3 | 官方 |
开发里程碑和所有可取得的 8.0.11~8.0.39 发布说明均列出。没有发布说明的跳号不构造虚假链接。数量是页面主变更列表中的条目数,包含功能、构建、弃用、安全和 Bug 分类;不是独立功能数量,也不是与 5.7.44 的净差异数量。需要追究某个补丁的每一条行为时从相应原文进入。
| 版本 | 官方日期/标题 | 主变更条目数 |
|---|---|---|
| 8.0.0 | Changes in MySQL 8.0.0 (2016-09-12, Development Milestone) | 250 |
| 8.0.1 | Changes in MySQL 8.0.1 (2017-04-10, Development Milestone) | 458 |
| 8.0.2 | Changes in MySQL 8.0.2 (2017-07-17, Development Milestone) | 234 |
| 8.0.3 | Changes in MySQL 8.0.3 (2017-09-21, Release Candidate) | 205 |
| 8.0.4 | Changes in MySQL 8.0.4 (2018-01-23, Release Candidate) | 372 |
| 8.0.11 | Changes in MySQL 8.0.11 (2018-04-19) | 301 |
| 8.0.12 | Changes in MySQL 8.0.12 (2018-07-27) | 189 |
| 8.0.13 | Changes in MySQL 8.0.13 (2018-10-22) | 263 |
| 8.0.14 | Changes in MySQL 8.0.14 (2019-01-21) | 224 |
| 8.0.15 | Changes in MySQL 8.0.15 (2019-02-01) | 3 |
| 8.0.16 | Changes in MySQL 8.0.16 (2019-04-25) | 269 |
| 8.0.17 | Changes in MySQL 8.0.17 (2019-07-22) | 253 |
| 8.0.18 | Changes in MySQL 8.0.18 (2019-10-14) | 230 |
| 8.0.19 | Changes in MySQL 8.0.19 (2020-01-13) | 211 |
| 8.0.20 | Changes in MySQL 8.0.20 (2020-04-27) | 187 |
| 8.0.21 | Changes in MySQL 8.0.21 (2020-07-13) | 193 |
| 8.0.22 | Changes in MySQL 8.0.22 (2020-10-19) | 174 |
| 8.0.23 | Changes in MySQL 8.0.23 (2021-01-18) | 163 |
| 8.0.24 | Changes in MySQL 8.0.24 (2021-04-20) | 174 |
| 8.0.25 | Changes in MySQL 8.0.25 (2021-05-11) | 4 |
| 8.0.26 | Changes in MySQL 8.0.26 (2021-07-20) | 192 |
| 8.0.27 | Changes in MySQL 8.0.27 (2021-10-19) | 180 |
| 8.0.28 | Changes in MySQL 8.0.28 (2022-01-18) | 156 |
| 8.0.29 | Changes in MySQL 8.0.29 (2022-04-26) | 148 |
| 8.0.30 | Changes in MySQL 8.0.30 (2022-07-26) | 132 |
| 8.0.31 | Changes in MySQL 8.0.31 (2022-10-11) | 119 |
| 8.0.32 | Changes in MySQL 8.0.32 (2023-01-17) | 95 |
| 8.0.33 | Changes in MySQL 8.0.33 (2023-04-18) | 103 |
| 8.0.34 | Changes in MySQL 8.0.34 (2023-07-18) | 98 |
| 8.0.35 | Changes in MySQL 8.0.35 (2023-10-25) | 51 |
| 8.0.36 | Changes in MySQL 8.0.36 (2024-01-16) | 47 |
| 8.0.37 | Changes in MySQL 8.0.37 (2024-04-30) | 68 |
| 8.0.38 | Changes in MySQL 8.0.38 (2024-07-01) | 50 |
| 8.0.39 | Changes in MySQL 8.0.39 (2024-07-23) | 3 |
补充对照:5.7.44 最终发布说明。其中与 8.0 共同修复的事项应从净差异中剔除,不能把所有 8.0 Bug Fixed 都算作升级新增。
对照了固定 tag mysql-5.7.44 与 mysql-8.0.39 的系统变量、InnoDB 参数、函数注册和语法相关源码,并结合官方发布说明核对回补与版本边界。
检查正文及附录中的 721 个去重外部链接,均可访问;链接可访问不代表其全部内容均属于目标版本,本文已特别排除后续版本条目。
检查目录锚点、表格列数、代码围栏和编号唯一性;未发现结构错误。
SQL 片段是可复核示例,本次没有启动两个服务器实例执行回归或性能测试,因此没有给出性能倍数、资源节省百分比或生产可迁移性的实测承诺。
参数生命周期索引保留 debug、插件、状态和别名项目,其计数不能用作功能净增数量。Bug 级净差异及特定操作系统二进制差异的边界见第 24.3 节。