官方文档 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 之间的转换,以及获得向量长度。 运算符也只支持等号比较,像最常用的计算向量间距离的能力也还没有。
保存 JSON 格式 EXPLAIN 执行计划到变量
执行计划之前只支持输出为表格格式,现在可以输出为 JSON 格式,并且可以存到一个变量里供后续处理。还可以这样衔接上 JSON 函数了。 另外对于 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