官方文档 https://dev.mysql.com/doc/refman/9.0/en/mysql-nutshell.html
时隔 6 年多,上周 Oracle 发布了 MySQL 最新的大版本 9.0。我们一起来看看新版本有哪些东西。
用 JavaScript 写存储过程
半年前已经单独介绍过 「虽迟但到!MySQL 可以用 JavaScript 写存储过程了!」,这次也正式出现在 9.0 中。不过只有企业版有,不包括在社区版中。 
新的 VECTOR 向量类型
隔壁 Postgres 的 pg_vector 发展势头迅猛,MySQL 9.0 这次也加上了向量类型 VECTOR  不过这次的版本只是提供了最基础的向量类型。比如函数上只提供了和 String 之间的转换,以及获得向量长度。
 不过这次的版本只是提供了最基础的向量类型。比如函数上只提供了和 String 之间的转换,以及获得向量长度。  运算符也只支持等号比较,像最常用的计算向量间距离的能力也还没有。
 运算符也只支持等号比较,像最常用的计算向量间距离的能力也还没有。
保存 JSON 格式 EXPLAIN 执行计划到变量
 执行计划之前只支持输出为表格格式,现在可以输出为 JSON 格式,并且可以存到一个变量里供后续处理。还可以这样衔接上 JSON 函数了。
 执行计划之前只支持输出为表格格式,现在可以输出为 JSON 格式,并且可以存到一个变量里供后续处理。还可以这样衔接上 JSON 函数了。  另外对于 EXPLAIN 还支持了 FOR SCHEMA/DATABASE 语法,可以模拟语句在指定 DATABASE 中的执行计划
 另外对于 EXPLAIN 还支持了 FOR SCHEMA/DATABASE 语法,可以模拟语句在指定 DATABASE 中的执行计划 
Event DDL 支持 Prepared
Event 可用来配置定时任务。9.0 中相关的 DDL,CREATE EVENT,ALTER EVENT,DROP EVENT 可以被 Prepared 了。不过它还不支持 ?占位符,需要通过存储过程,传参数,字符串拼接的方式曲线救国。 
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 引入新的变量表,将来可以支持更强大的自定义变量。
目前规划中的 LTS 版是 9.7,估计还要等个几年。9.0 的改动不算多,但也包含了上百个 bug 修复。改动不大的好处是升级会比较容易,个人可以马上搭个 9.0 尝尝鲜,企业里等 9.1.x 版本出来,也可以考虑做测试升级准备了。
💡 更多资讯,请关注 Bytebase 公号:Bytebase