官方文档 https://dev.mysql.com/doc/refman/9.0/en/mysql-nutshell.html
时隔 6 年多,上周 Oracle 发布了 MySQL 最新的大版本 9.0。我们一起来看看新版本有哪些东西。
用 JavaScript 写存储过程半年前已经单独介绍过 「虽迟但到!MySQL 可以用 JavaScript 写存储过程了!」,这次也正式出现在 9.0 中。不过只有企业版有,不包括在社区版中。![MySQL 9.0 新功能概览-3 MySQL 9.0 新功能概览-3](https://img.mryunwei.com/uploads/2024/07/20240709210759451.png)
新的 VECTOR 向量类型隔壁 Postgres 的 pg_vector 发展势头迅猛,MySQL 9.0 这次也加上了向量类型 VECTOR
不过这次的版本只是提供了最基础的向量类型。比如函数上只提供了和 String 之间的转换,以及获得向量长度。
运算符也只支持等号比较,像最常用的计算向量间距离的能力也还没有。
保存 JSON 格式 EXPLAIN 执行计划到变量
执行计划之前只支持输出为表格格式,现在可以输出为 JSON 格式,并且可以存到一个变量里供后续处理。还可以这样衔接上 JSON 函数了。
另外对于 EXPLAIN 还支持了 FOR SCHEMA/DATABASE 语法,可以模拟语句在指定 DATABASE 中的执行计划![MySQL 9.0 新功能概览-10 MySQL 9.0 新功能概览-10](https://img.mryunwei.com/uploads/2024/07/20240709210806375.png)
Event DDL 支持 PreparedEvent 可用来配置定时任务。9.0 中相关的 DDL,CREATE EVENT,ALTER EVENT,DROP EVENT 可以被 Prepared 了。不过它还不支持 ?占位符,需要通过存储过程,传参数,字符串拼接的方式曲线救国。![MySQL 9.0 新功能概览-12 MySQL 9.0 新功能概览-12](https://img.mryunwei.com/uploads/2024/07/20240709210808639.png)
Performance Schema 新增系统变量表增加了 variables_metadata
和 global_variable_attributes
两张表。更加结构化地保存和读取系统变量。
mysql_native_password plugin 彻底告别帮 MySQL 看了几十年门的经典登陆认证方式终于彻底告别历史舞台。虽然 8.0.4 开始,默认的认证插件已经从 mysql_native_password 改成了 caching_sha2_password。该来的总是要来。
小结
按照官方的版本规划,9.0 是一个 Innovation Release,算是给后续的迭代打一个基础。大的新功能目前是 MVP,还要在后续的 9.x 中继续增强的,比如:
- 引入 VECTOR 向量类型是为了后续全面支持向量计算。
-
Performance Schema 引入新的变量表,将来可以支持更强大的自定义变量。
![MySQL 9.0 新功能概览-5 MySQL 9.0 新功能概览-5](https://img.mryunwei.com/uploads/2024/07/20240709210801616.png)
![MySQL 9.0 新功能概览-6 MySQL 9.0 新功能概览-6](https://img.mryunwei.com/uploads/2024/07/20240709210802201.png)
![MySQL 9.0 新功能概览-7 MySQL 9.0 新功能概览-7](https://img.mryunwei.com/uploads/2024/07/20240709210803157.png)
保存 JSON 格式 EXPLAIN 执行计划到变量
执行计划之前只支持输出为表格格式,现在可以输出为 JSON 格式,并且可以存到一个变量里供后续处理。还可以这样衔接上 JSON 函数了。
另外对于 EXPLAIN 还支持了 FOR SCHEMA/DATABASE 语法,可以模拟语句在指定 DATABASE 中的执行计划![MySQL 9.0 新功能概览-10 MySQL 9.0 新功能概览-10](https://img.mryunwei.com/uploads/2024/07/20240709210806375.png)
Event DDL 支持 PreparedEvent 可用来配置定时任务。9.0 中相关的 DDL,CREATE EVENT,ALTER EVENT,DROP EVENT 可以被 Prepared 了。不过它还不支持 ?占位符,需要通过存储过程,传参数,字符串拼接的方式曲线救国。![MySQL 9.0 新功能概览-12 MySQL 9.0 新功能概览-12](https://img.mryunwei.com/uploads/2024/07/20240709210808639.png)
Performance Schema 新增系统变量表增加了 variables_metadata
和 global_variable_attributes
两张表。更加结构化地保存和读取系统变量。
mysql_native_password plugin 彻底告别帮 MySQL 看了几十年门的经典登陆认证方式终于彻底告别历史舞台。虽然 8.0.4 开始,默认的认证插件已经从 mysql_native_password 改成了 caching_sha2_password。该来的总是要来。
小结
按照官方的版本规划,9.0 是一个 Innovation Release,算是给后续的迭代打一个基础。大的新功能目前是 MVP,还要在后续的 9.x 中继续增强的,比如:
- 引入 VECTOR 向量类型是为了后续全面支持向量计算。
-
Performance Schema 引入新的变量表,将来可以支持更强大的自定义变量。
![MySQL 9.0 新功能概览-12 MySQL 9.0 新功能概览-12](https://img.mryunwei.com/uploads/2024/07/20240709210808639.png)
![MySQL 9.0 新功能概览-13 MySQL 9.0 新功能概览-13](https://img.mryunwei.com/uploads/2024/07/20240709210809797.png)
Performance Schema 新增系统变量表增加了 variables_metadata
和 global_variable_attributes
两张表。更加结构化地保存和读取系统变量。
mysql_native_password plugin 彻底告别帮 MySQL 看了几十年门的经典登陆认证方式终于彻底告别历史舞台。虽然 8.0.4 开始,默认的认证插件已经从 mysql_native_password 改成了 caching_sha2_password。该来的总是要来。
小结
按照官方的版本规划,9.0 是一个 Innovation Release,算是给后续的迭代打一个基础。大的新功能目前是 MVP,还要在后续的 9.x 中继续增强的,比如:
- 引入 VECTOR 向量类型是为了后续全面支持向量计算。
-
Performance Schema 引入新的变量表,将来可以支持更强大的自定义变量。
小结
按照官方的版本规划,9.0 是一个 Innovation Release,算是给后续的迭代打一个基础。大的新功能目前是 MVP,还要在后续的 9.x 中继续增强的,比如:
- 引入 VECTOR 向量类型是为了后续全面支持向量计算。
-
Performance Schema 引入新的变量表,将来可以支持更强大的自定义变量。
![MySQL 9.0 新功能概览-15 MySQL 9.0 新功能概览-15](https://img.mryunwei.com/uploads/2024/07/20240709210811961.png)
- 引入 VECTOR 向量类型是为了后续全面支持向量计算。
-
Performance Schema 引入新的变量表,将来可以支持更强大的自定义变量。
目前规划中的 LTS 版是 9.7,估计还要等个几年。9.0 的改动不算多,但也包含了上百个 bug 修复。改动不大的好处是升级会比较容易,个人可以马上搭个 9.0 尝尝鲜,企业里等 9.1.x 版本出来,也可以考虑做测试升级准备了。
虽迟但到!MySQL 可以用 JavaScript 写存储过程了!
Bytebase 签约澳洲 School Bytes,助力教务管理 SaaS 规范化数据库批量变更
代码全开源!数据库工具届的瑞士军刀,替代多款工具的一站式数据库开发平台
Bytebase 产品介绍