MySQL 新技术系列第一期

📢 MySQL 新技术系列开篇语

各位数据库同行、开发者朋友们,大家好!

欢迎来到「MySQL 新技术」系列的第一期。在接下来的系列中,我将持续为大家追踪、解读 MySQL 社区的最新动态,深入剖析从核心引擎到生态工具的每一项关键技术演进,希望能为你的日常运维与架构选型提供有力参考。

作为本系列的开篇,第一期的主题是 「告别 MySQL 8.0 时代,全景解读 MySQL 9.x 创新版」。之所以以此开篇,是因为 2026 年 4 月,MySQL 8.0 正式结束生命周期(EOL),与此同时,9.7.0 LTS 正式确立为下一代长期支持版。这是一个时代的交接与新生。本文将从版本策略出发,系统梳理从 9.0 到 9.7 的全景新特性,帮助大家厘清技术脉络,把握升级方向。

一、开篇综述:MySQL 版本策略与路线图

1.1 创新版 vs 长期支持版(LTS)

在开启 9.x 系列介绍之前,有必要回顾一下 MySQL 自 2023 年启用的双轨制版本策略:

版本类型 定位 生命周期 适用场景
创新版(Innovation Release) 快速迭代,抢先体验新功能 约 3–6 个月 开发测试环境、希望尽早使用新特性的用户
长期支持版(LTS) 稳定优先,兼容性保障 标准支持至 2029 年 4 月,扩展支持至 2032 年 生产环境核心系统

简单来说,创新版是 MySQL 的「前沿试验场」,每季度左右发布一个新版本,将最新功能快速交付给社区;LTS 版则是「生产压舱石」,每两年左右从创新版分支中选取一个稳定基线,提供长达数年的长期维护。

1.2 重要里程碑时间线

时间 事件
2024 年 7 月 MySQL 9.0.0 创新版发布(后因严重 bug 撤回,由 9.0.1 替代)
2024 年 10 月 MySQL 9.1.0 创新版发布
2025 年 1 月 MySQL 9.2.0 创新版发布
2025 年 4 月 MySQL 9.3.0 创新版发布
2026 年 4 月 MySQL 8.0 正式 EOL;9.7.0 LTS GA

1.3 为什么要告别 8.0?

MySQL 8.0 于 2018 年 4 月正式 GA,至今已走过整整八个年头。作为 MySQL 历史上最成功的大版本,它带来了窗口函数、CTE、InnoDB 集群、JSON 全面增强等变革性功能。但从 2026 年 5 月 1 日起,8.0 已不再获得任何新的安全补丁和 bug 修复,继续运行意味着安全风险持续累积,尤其对于金融、电信、政务等强合规行业而言,这是一个必须严肃对待的风险信号。因此,尽早规划向 9.x LTS 的升级,是当下每个 DBA 和架构师需要提上日程的重要课题。

二、核心新特性全景概览

从 9.0 到 9.3 创新版,再到 9.7 LTS,MySQL 在多个维度实现了重大突破:

特性领域 关键创新 首发版本
🤖 AI 与向量 VECTOR 数据类型、向量检索、RAG 支持 9.0 / 8.4
📝 JavaScript 支持 MLE 多语言引擎、存储程序、LIBRARY 模块化 9.0 → 持续演进
🚀 性能与可观测性 触发器延迟加载、EXPLAIN 增强、Hypergraph Optimizer 9.1 → 9.7
🛡️ 高可用性 Primary Election 组件、自动驱逐与重加入、OpenTelemetry 集成 9.3 → 9.7
🔒 安全增强 OpenID Connect、原子 DDL、Dynamic Data Masking 9.1 → 9.7
📦 社区版扩展 JSON Duality Views、Profile-Guided Optimization 等 8 大能力 9.7 LTS

三、🤖 AI 与向量支持(Vector Support)

3.1 VECTOR 数据类型(9.0 / 8.4 LTS)

随着大模型和 RAG 技术的普及,向量检索已从小众需求跃升为通用能力。MySQL 9.0 引入了原生的 VECTOR 数据类型,使开发者能够在 MySQL 中直接存储和操作向量嵌入,无需额外部署独立的向量数据库。

核心参数:

  • 每个条目为 4 字节浮点数
  • 默认最大长度为 2048,绝对上限为 16383

相关函数:

函数 说明
VECTOR_DIM() 返回向量的维度
STRING_TO_VECTOR() / TO_VECTOR() 将字符串格式转换为二进制向量
VECTOR_TO_STRING() / FROM_VECTOR() 将二进制向量转换为字符串格式

实用场景: 用户可在单条 SQL 中同时完成结构化条件过滤与向量相似性检索,例如「查询 2024 年发布的、与‘MySQL 向量检索’语义相似的技术文档」。

⚠️ DBA 提醒:9.0 的 VECTOR 是第一代实现,存在显著限制——不能用作键(KEY),且函数兼容性有限。其检索性能尚无法与专用向量数据库(如 Milvus)匹敌,更适合中小规模的 AI 场景。

3.2 HNSW 向量索引(8.4 LTS)

MySQL 8.4 LTS 在 VECTOR 类型的基础上,进一步引入了 HNSW(Hierarchical Navigable Small World)向量索引,大幅提升了大规模向量数据的检索效率。

3.3 GenAI 与 RAG 支持(HeatWave)

在 MySQL HeatWave 中,官方提供了更完整的 AI 能力:

  • 向量存储:自动解析 PDF、PPT、TXT、HTML、DOC 等格式文件,生成向量嵌入并存入 VECTOR 类型列。
  • AI 引擎加速:通过 ALTER TABLE ... SECONDARY_LOAD 将向量表卸载至 MySQL AI 引擎,实现查询加速。
  • 内置 RAGML_RAG 例程支持检索增强生成,结合私有数据与大模型,生成更精准的回答。

四、📝 JavaScript 支持与多语言引擎(MLE)

如果说 VECTOR 是 MySQL 在 AI 数据层面的革新,那么 JavaScript 支持则是其在开发范式层面的革命性突破。

4.1 JavaScript 存储程序(9.0)

MySQL 9.0 首次将 JavaScript 引入数据库内核,允许开发者使用 JavaScript 编写存储过程和存储函数。JavaScript 存储函数可在 SQL 表达式的任意位置调用,包括 WHEREHAVINGORDER BY 等子句。这意味着前端开发者可以将现有的 JavaScript 技能直接应用到数据库逻辑中,降低学习成本,提升开发效率。

4.2 LIBRARY 模块化(9.0 → 9.2 → 9.3)

随着项目规模增长,代码复用成为刚需。MySQL 9.0 引入了 LIBRARY 对象,允许开发者将 JavaScript 和 WebAssembly 代码封装成可复用的库模块,通过 CREATE LIBRARY DDL 声明,并在存储程序中使用 USING 子句导入。

演进时间线:

版本 JavaScript 能力演进
9.0 基础 JavaScript 存储程序、LIBRARY 初步支持
9.1 支持 JavaScript 程序使用 VECTOR 类型
9.2 事务 API(START TRANSACTION / COMMIT / ROLLBACK);ENUM/SET 类型识别;MySQL 内置函数调用
9.3 await 动态加载库;ALTER LIBRARY / SHOW LIBRARY STATUS;DECIMAL 类型支持;国际化 API

💡 应用价值:LIBRARY 对象将代码缓存一次、多处复用,避免内存膨胀。同时,开发者可直接复用 npm 上的海量开源 ECMAScript 模块(ESM),将前端生态的丰富资源带入数据库层。

4.3 MLE 组件(企业版)

MLE(多语言引擎组件)是 MySQL 企业版中驱动 JavaScript 支持的核心组件,负责 JavaScript 代码的解析、执行和与 MySQL 内核的交互。在 9.2 版本中,MLE 支持 JavaScript 例程通过 getFunction()getProcedure() 方法调用 MySQL 存储函数和过程,并可通过全局 Session 对象访问会话变量。

五、🚀 性能与可观测性增强

5.1 触发器延迟加载(9.1)

在 9.1 之前的版本中,每次访问带有触发器的表时,触发器都会被完整加载和解析,即使只是执行只读的 SELECT 操作,造成了大量不必要的资源消耗。

9.1 的优化方案: 将触发器处理拆分为两个阶段——

  • 阶段一:仅读取触发器元数据,存入全局缓存,供所有会话共享
  • 阶段二:仅在真正执行数据修改操作时,才进行完整解析和执行

新增的系统变量 table_open_cache_triggers 以及状态变量 Table_open_cache_triggers_hits / misses,为管理员提供了清晰的缓存监控能力。

5.2 EXPLAIN 与优化器增强(9.1 → 9.3)

版本 增强内容
9.1 EXPLAIN 输出包含多范围读取信息、半连接策略描述;支持 GROUP BY ROLLUP (col1, col2) 语法
9.2 EXPLAIN FORMAT=JSON 引入版本信息字段
9.3 扩展对量化比较谓词转换的支持,提升复杂查询效率

5.3 查询优化器与可观测性(9.7 LTS)

9.7 LTS 引入了多项重量级性能增强:

  • Hypergraph Optimizer:新一代查询优化器,对复杂连接查询的优化能力显著提升
  • Profile-Guided Optimization(PGO):基于实际运行负载的编译优化技术
  • OpenTelemetry 集成:支持通过 OTLP 协议导出日志、指标和链路追踪数据,与 Prometheus、Jaeger 等现代可观测性体系无缝对接

六、🛡️ 高可用性改进

6.1 原子 DDL(9.1)

9.1 版本实现了 CREATE DATABASEDROP DATABASE 操作的原子性与崩溃安全。在执行过程中若发生意外服务崩溃,系统会自动回滚,确保数据的完整性和一致性。

6.2 Group Replication 主节点选举(9.3 → 9.7)

9.3 引入了 Primary Election 组件,在故障转移时能够精准选择数据最新的次级服务器作为主节点,有效减少数据不一致和停机时间。

9.7 LTS 进一步增强了集群韧性:

  • Up-to-date Aware Primary Election:优先选择数据最新的节点进行主节点选举
  • Automatic Eviction & Rejoin:自动检测不健康成员并驱逐,待条件恢复后自动重加入集群

6.3 复制监控增强

9.1 在 Performance Schema 中新增了 Replication Applier Metrics 表,用于监控应用线程进度和工作线程活动。9.7 进一步将流量控制监控和多线程应用线程扩展统计纳入社区版。

七、🔒 安全增强

版本 安全特性
9.1 OpenID Connect 支持;AES ECB 模式移除;OpenSSL 升级至 3.0.15;Option Tracker 组件
9.2 CREATE_SPATIAL_REFERENCE_SYSTEM 权限细化
9.3 mysqldump 支持 --users--add-drop-user--include-user / --exclude-user 逻辑备份用户账户
9.7 LTS Dynamic Data Masking(企业版):动态数据脱敏能力

八、📦 社区版能力扩展(9.7 LTS)

9.7 LTS 最大的亮点之一,是将原本仅限企业版的 8 大能力开放至社区版,涵盖四大技术领域:

技术领域 开放能力
复制与高可用 流量控制监控、多线程应用线程扩展统计、自动驱逐与重加入、Up-to-date Aware 主节点选举
可观测性 OpenTelemetry 集成(日志、指标、链路追踪)
现代应用开发 JSON Duality Views(支持 DML 操作)
查询优化 Hypergraph Optimizer、Profile-Guided Optimization

九、⚠️ 弃用与移除

版本 弃用/移除内容
9.0 非事务性表、不可组合的存储功能
9.2 SUPER 权限用于空间参考系统操作
9.3 Version Tokens 插件完全移除;replica_parallel_workers 最小值强制为 1

十、📌 升级指南与建议

10.1 当前版本选择建议

用户类型 推荐版本 理由
生产环境核心系统 8.4 LTS(标准支持至 2029 年) 稳定性优先,经过充分验证
新项目启动 / 追求前沿 9.7 LTS 最新 LTS,包含 9.x 系列所有创新精华
开发测试环境 最新创新版(如 9.7+) 抢先体验新特性,为生产升级积累经验

10.2 从 8.0 升级的注意事项

  1. 安全风险:8.0 自 2026 年 5 月 1 日起已不再获得安全补丁,建议尽快规划升级
  2. 认证插件:默认认证插件已从 mysql_native_password 切换为 caching_sha2_password,需检查客户端兼容性
  3. SQL 模式变化:部分隐式默认值行为已调整,建议充分测试
  4. 功能验证:VECTOR 等新功能有性能局限,评估是否满足业务需求后再决定使用

10.3 功能启用时机建议

功能 建议启用时机
VECTOR + JavaScript 可立即在 9.7 LTS 生产环境启用
HNSW 向量索引 数据量 >10 万条时建议启用
Hypergraph Optimizer 复杂连接查询场景优先启用
动态库加载 代码复用需求强烈时启用

十一、🔮 总结与展望

回顾 MySQL 9.x 系列的发展历程,我们可以看到一条清晰的演进主线:从传统关系型数据库向「AI-Ready、开发者友好、可观测」的现代数据平台转型

  • AI 层面:VECTOR 数据类型和向量检索能力,使 MySQL 能够原生支撑 RAG、语义搜索等 AI 应用场景,避免了「关系数据库 + 向量数据库」的双库架构复杂性。
  • 开发层面:JavaScript 支持和 LIBRARY 模块化,极大降低了数据库逻辑的开发门槛,让超过 1700 万的 JavaScript 开发者能够将自己的技能应用到数据库端。
  • 运维层面:原子 DDL、智能主节点选举、OpenTelemetry 可观测性集成,显著提升了数据库的可靠性和可管理性。

随着 8.0 时代的正式谢幕,9.7 LTS 已经接过了长期支持的接力棒,并带来了企业级能力向社区版的大规模开放。可以说,当前正是规划升级、拥抱 MySQL 新一代技术栈的最佳时机

下一期预告:我们将聚焦 「MySQL 9.x 中的 AI 实战:从向量存储到 RAG 应用」,手把手带你搭建一个基于 MySQL 原生向量检索的智能问答系统。敬请期待!

欢迎大家在评论区留言交流,告诉我你最想深入了解的主题,我会在后续系列中优先安排!

📚 参考资料

  • MySQL 9.0 Reference Manual
  • MySQL 9.1 Reference Manual & Release Notes
  • MySQL 9.2 Release Notes & Blog
  • MySQL 9.3 Reference Manual & Release Notes
  • MySQL 9.7.0 LTS Announcement Blog (Oracle)
  • Bytebase: What's New in MySQL 9 - a DBA's Perspective
  • Oracle Blog: Modular Magic with LIBRARY Feature
  • Tencent Cloud: MySQL 向量检索深度解析
  • Versionlog: MySQL Release History
  • 墨天轮: MySQL 8.0 EOL 与 9.7 LTS 发布深度解读

posted on 2026-04-23 13:21  绩隐金  阅读(19)  评论(0)    收藏  举报

导航