MySQL 9 是什么?新功能、与 8.4 LTS 的差异、迁移指南及关系型数据库比较(2025 更新)

目次

1. 引言

MySQL 是全球公司和工程师最广泛使用的关系型数据库管理系统(RDBMS)之一。在其众多版本中,2024 年及以后推出的 “MySQL 9” 系列被定位为 “创新发布”,通过引入大量新功能和前沿技术,显著区别于以往版本,进一步拓展了数据库的可能性。

迄今为止,MySQL 最为人熟知的是其长期支持(LTS)版本,如 “8.4”,这些版本侧重于稳定性和可靠性。然而,技术趋势的变化和市场需求的演进,使得对更快获取新功能以及提前采用 AI 与大数据驱动需求的需求日益增长。MySQL 9 以其大胆且前瞻的发布,吸引了开发者和数据库管理员的广泛关注,旨在满足这些现代需求。

本文提供了 MySQL 9(9.0–9.3)的全面概览,包括其关键特性、改进、与前代版本的差异、迁移注意事项以及截至 2025 年的其他数据库对比。如果你在思考 “MySQL 9 是什么?” 或者 “它在什么场景下有用?”,本指南将帮助你在数据库选型和系统运维上做出明智决策。

无论你是探索最新数据库技术的开发者、考虑升级 MySQL 环境的运维工程师,还是仅仅想获取技术洞见的读者,我们都邀请你阅读至文末。

2. MySQL 9 系列概述及发布背景

MySQL 9 系列代表了全新发布模型 “创新发布” 的第一波,标志着相较于 MySQL 8 系列的重大演进。此前的升级主要聚焦于以稳定性为核心的 LTS(长期支持)版本,而 9 系列则明确强调快速交付新技术。

传统的 LTS 版本 MySQL 8.4 面向企业和关键任务系统,提供长期的 bug 修复和安全补丁保障。相对而言,MySQL 9 创新发布侧重于在更快的发布周期内实现与现代技术趋势相契合的新功能——如 AI、云原生开发和大数据分析等。

MySQL 9 发布的背景源于数据库技术的快速进步以及真实需求的多元化。例如,针对 AI 时代的向量搜索和 JavaScript 存储过程等功能被引入,以提供超越传统 RDBMS 能力的开发体验。因此,MySQL 正在从单纯的 “数据存储系统” 向能够进行高级数据处理和实时分析的智能数据平台转变。

需要说明的是,创新发布最适合希望即时获取最新技术并提前采用新兴趋势的开发者和前瞻组织。对于长期运营的稳定性和可维护性,仍推荐使用 LTS 版本(如 MySQL 8.4)。通过这种方式,MySQL 9 系列清晰地划分了 “创新” 与 “稳定”,让用户能够根据自身需求选择最合适的版本。

在下一节中,我们将深入探讨 MySQL 9 实际引入的功能和改进,按版本逐一列出。

3. 按版本的更新历史(9.0–9.3 概要)

MySQL 9 系列的特点是逐步引入前所未有的新功能和改进。下面我们按版本整理了 2024 年至 2025 年春季发布的 MySQL 9.0 至 9.3 的主要更新。

3.1 MySQL 9.0(2024 年 7 月发布)

MySQL 9.0 作为首个创新版发布。该版本的关键点在于它提供了以往版本无法实现的体验。
以下是值得注意的新特性:

  • 向量数据类型的引入 为 MySQL 原生提供“向量搜索”支持,这对 AI 和推荐引擎至关重要。
  • 基于 JavaScript 的存储程序 使用 GraalVM 和 ECMAScript 2023,您可以用 JavaScript 编写存储过程和触发器(仅企业版功能)。
  • EXPLAIN ANALYZE 的 JSON 输出 使执行计划更易于可视化和自动化,大幅提升性能调优效率。
  • 移除 native_password 认证方式

发布后不久发现了漏洞;MySQL 9.0.0 发行版被停止,随后迅速提供了已修复的 MySQL 9.0.1。

3.2 MySQL 9.1(2024 年 10 月发布)

此版本主要侧重于对 9.0 中引入的功能进行稳定性提升和改进。

  • 向量类型优化及更快的查询性能
  • 在 AWS RDS 等服务上启动预览可用性
  • 更强的安全性和权限控制

3.3 MySQL 9.2(2025 年 1 月发布)

  • 新增 GIS 权限
  • mysqldump 增强(包括用户和权限信息的转储)
  • 引入 EXPLAIN JSON 格式第 2 版

3.4 MySQL 9.3(2025 年 4 月发布)

  • 进一步的向量类型优化和改进的索引
  • 为运维和管理工具扩展的集成 API
  • 性能提升和稳定性增强

3.5 已移除 / 已弃用的功能

  • 完全移除 native_password 认证方式
  • 停止对部分旧客户端协议的支持

3.6 未来路线图

预计 MySQL 9 将继续添加 AI 相关功能、云集成以及在各类关系型数据库系统之间更强的互操作性。了解各版本之间的差异并根据您的目标加以应用至关重要。

4. 突出新特性及实际使用案例

MySQL 9 系列的一个重要标志是它包含了许多传统关系型数据库产品所没有的创新特性。本文将聚焦对实际环境影响最大的这些新特性,并阐述其实际使用案例和关键注意事项。

4-1. 向量数据类型

关键特性及可实现的功能
向量数据类型是一种新类型,允许您在数据库中直接存储和搜索在 AI 与机器学习中常用的“多维向量”。在此之前,通常需要借助 Elasticsearch 或外部向量数据库,而从 MySQL 9 开始,您可以定义向量类型并执行相似度搜索和最近邻探索。

示例使用场景

  • 对产品或图像进行“相似查找”
  • 实现推荐系统
  • 语义搜索(自然语言向量搜索)

示例 SQL

CREATE TABLE items (
  id INT PRIMARY KEY,
  feature VECTOR(128)
);

注意事项
目前,它并不能完全取代全文搜索,且在索引和查询性能方面存在一些限制。

4-2. 基于 JavaScript 的存储程序

背景及关键特性
在支持 GraalVM 和 ECMAScript 2023 的情况下,MySQL 增加了使用 JavaScript 编写存储过程的能力。这对 Web 开发者尤具吸引力,因为他们可以使用熟悉的语言实现数据库逻辑。

示例代码

CREATE PROCEDURE add_numbers(a INT, b INT)
LANGUAGE JAVASCRIPT
AS
$$
  return a + b;
$$;

注意事项
此功能仅限于 MySQL 企业版和 HeatWave,社区版无法使用。

4-3. EXPLAIN ANALYZE 的 JSON 输出

概述与优势
执行计划现在可以以 JSON 格式输出,使得更容易与外部工具集成。这实现了可视化和自动化分析,提高了性能调优的准确性。

示例查询

EXPLAIN ANALYZE FORMAT=JSON
SELECT * FROM items WHERE id = 1;

4-4. 其他增强功能(GIS 权限、mysqldump 改进等)

  • 引入 GIS 权限:为处理地理空间数据提供更细粒度的权限设置。
  • mysqldump 改进:支持包括用户和权限信息的完整备份,使云迁移和环境恢复更容易。

MySQL 9 提供了面向 AI、云和数据分析时代的广泛灵活且创新的功能。

5. 与其他关系型数据库(PostgreSQL、MariaDB 等)的新特性比较

MySQL 9 系列引入的高级功能与其他主要关系型数据库系统(RDB)相比如何?本节将 MySQL 9 与 PostgreSQL、MariaDB 等代表性 RDB 进行比较,以阐明其优势和特性。

5-1. 向量数据类型的实现与应用

MySQL 9

  • 支持原生 VECTOR 类型,使用标准 SQL 实现相似度搜索和向量存储。
  • 还通过专用运算符(如 <=>)支持向量距离计算。

PostgreSQL

  • 核心发行版未实现向量类型,但可通过扩展(如 pgvector)提供支持。
  • 设置和操作需要一定的技术水平。

MariaDB

  • 不原生支持向量类型;通常采用 JSON 类型或外部处理作为替代方案。

总结
MySQL 9 以官方、简化的实现脱颖而出,使采纳更为容易。

5-2. 存储过程语言的灵活性

MySQL 9

  • 引入基于 JavaScript 的存储过程(基于 GraalVM,仅企业版)。

PostgreSQL

  • 支持 PL/pgSQL 以及多种语言,如 PL/Python、PL/Perl 和 JavaScript 变体。

MariaDB

  • 主要基于 SQL;语言选项相对有限。

总结
PostgreSQL 在多语言灵活性方面领先,而 MySQL 9 则侧重于对 Web 开发者的易用性。

5-3. 认证方式与安全架构

MySQL 9

  • 移除 native_passwordcaching_sha2_password 现为标准。

PostgreSQL

  • 支持多种安全机制,包括 SCRAM-SHA-256 和基于证书的认证。

MariaDB

  • 与 MySQL 类似,但倾向于保留对旧版认证方式的支持。

总结
MySQL 9 在标准化安全默认值方面走在前列,而 PostgreSQL 提供更细粒度的控制。

5-4. 备份与运维工具

MySQL 9

  • 增强的 mysqldump(支持包括用户和权限信息的转储)。

PostgreSQL

  • 提供完整工具,如 pg_dump 和 pg_basebackup;支持基于快照的操作。

MariaDB

  • 继承 MySQL 的类似工具,但功能添加更为保守。

总结
MySQL 9 在云就绪度和完整备份能力方面达到了高标准。

5-5. 未来发展与技术路线图

MySQL 9 的特点是新功能的快速官方交付。PostgreSQL 强调开源可扩展性,而 MariaDB 在兼容性与自主创新之间取得平衡。

每种数据库都有其独特优势,选择合适的数据库取决于项目需求和开发策略。

6. MySQL 9 迁移与部署指南

因为 MySQL 9 积极融入新技术,从现有环境迁移或在新系统中部署它都需要谨慎规划。本节概述了实用的检查清单、兼容性考虑、云部署指南以及试点部署步骤。

6-1. 现有环境检查清单

验证身份验证方法
在 MySQL 9 中,已移除 native_password 身份验证,caching_sha2_password 等新方法已成为标准。在从旧版本升级之前,请确认您的应用程序和客户端工具支持更新后的身份验证方法。

客户端和驱动程序兼容性
确认用于 PHP、Python、Java 等环境的 MySQL 驱动程序正式支持 MySQL 9。某些驱动版本可能导致连接错误或异常行为。

6-2. 兼容性和迁移考虑

处理已移除的功能
某些旧版本的 API、身份验证方法和配置参数已被移除或弃用。迁移前请查看官方的弃用和移除列表。

SQL 语法和数据类型审查
随着新功能的加入,SQL 语法和数据类型行为可能已改变。进行充分的迁移前测试至关重要,尤其是针对自定义 SQL 实现或遗留系统。

6-3. 云部署(AWS RDS、Google Cloud 等)

版本可用性
MySQL 9 在 AWS RDS、Google Cloud SQL 等服务中的支持正在扩大。务必确认可用性、版本限制以及特定服务的条件。

云迁移考虑因素

  • 权限管理和网络配置可能受云提供商的约束。
  • 将云原生备份/恢复功能与 MySQL 9 工具(如 mysqldump)结合使用,可提升可靠性和安全性。

6-4. 试点部署工作流(简化版)

步骤 1:备份与环境评估
迁移前,执行完整备份并记录当前版本、配置设置和用户权限。

步骤 2:在测试环境中验证
不要直接在生产环境中应用更改。相反,在测试服务器或通过 Docker 部署 MySQL 9,并复现迁移场景。

步骤 3:兼容性检查与调优
评估已弃用和新功能的影响,并根据需要调整 SQL 或应用程序。

步骤 4:生产迁移与监控
在初始生产阶段,持续监控日志和性能指标,并确保具备快速响应能力。

6-5. 在 LTS(8.4)与创新(9 系列)之间的选择

  • LTS(8.4):适用于需要稳定、长期运行的业务关键系统。
  • 创新(9 系列):最适合提前采用 AI 能力和新兴技术的开发团队。

MySQL 9 系列提供了满足各种需求的灵活性。

7. 总结与推荐使用场景

MySQL 9 系列区别于传统 LTS 版本,作为面向未来、以创新为驱动的数据库,为现代环境带来变革。本章我们总结了哪些类型的用户和环境最适合 9 系列,并提供了在 MySQL 9 与 LTS(8.4)之间选择的明确标准。

7-1. 谁应该考虑 MySQL 9?

  • 积极利用 AI 和机器学习的服务
  • 新建 Web 开发或 SaaS 启动项目
  • 大量使用云环境并寻求快速数据库创新的团队
  • 希望通过提前采用新兴技术趋势来实现差异化的开发团队

7-2. 何时选择 LTS(8.4)

  • 长期运营稳定性是最高优先级的系统
  • 强调兼容性和长期支持的遗留环境
  • 频繁版本升级难以管理的大型组织

7-3. 示例决策流程

  1. 这是一个新开发项目还是对现有系统的升级?
  2. 是否需要 AI 能力或向量搜索?
  3. 是否会使用仅限企业版的功能,例如 JavaScript 存储程序?
  4. 您的团队是否具备处理频繁升级的运维能力?

7-4. 未来展望与关键关注点

预计 MySQL 9 系列将继续定期接收功能更新。AI 相关功能、先进的分析能力、云集成以及进一步的性能提升是需要密切关注的领域。

MySQL 9 的价值取决于贵组织当前的优先事项。明确何时使用 LTS 版与 Innovation 版,可实现最具战略性和最优的数据库选择。

8. 常见问题 (FAQ)

关于 MySQL 9 系列相较于之前版本的差异以及最新功能,存在许多常见问题。以下是来自真实环境的常见提问及其答案。

Q1. MySQL 9.x 可以在生产环境中使用吗?

A.
MySQL 9.x 属于 Innovation 发行版,面向重视灵活性和新功能获取的环境。可以在生产环境中使用,但团队必须准备好处理升级和潜在的故障排除。如果需要最高的稳定性,建议使用 LTS 版本(如 MySQL 8.4)。

Q2. 向量数据类型可以取代全文搜索吗?

A.
向量数据类型旨在进行基于相似度的搜索(“语义接近”),与基于精确字符串匹配的传统全文搜索不同。它更适合作为补充特性,而非替代方案。

Q3. 免费的 Community Edition 是否支持 JavaScript 存储过程?

A.
目前,JavaScript 存储程序仅在 MySQL Enterprise Edition 和 HeatWave 中可用,Community Edition 不支持。

Q4. native_password 认证方法已被移除——我该怎么办?

A.
MySQL 9 推荐使用 caching_sha2_password 以及其他安全认证方式。迁移前,请确认您的应用程序和连接库支持新的认证方法,并相应地更新配置设置。

Q5. 与其他关系型数据库(如 PostgreSQL 或 MariaDB)相比,MySQL 9 的优势是什么?

A.
MySQL 9 能快速获得官方对新特性(如向量数据类型和 JavaScript 存储程序)的支持。它在 Web 开发场景和云集成用例中尤为强大。

Q6. 升级过程中常见的问题有哪些?

A.
常见问题包括认证方式的更改、已弃用特性的移除以及 SQL 语法差异。升级前务必在预演环境中进行充分测试,并确保完整备份。

9. 相关链接与参考资料

如果您想更深入了解 MySQL 9,使用官方文档、专家博客和社区资源是非常有效的方式。以下是值得信赖的参考资料和有用链接。

9-1. 官方文档与发行说明

9-2. 技术文章与案例研究

9-3. 社区与论坛

9-4. 其他关系型数据库官方站点

9-5. 如何保持更新

因为发行说明和官方博客会定期更新,频繁检查它们可确保您保持最新状态。评估或运行 MySQL 9 时,利用此处介绍的资源来构建更稳健、面向未来的系统。