官方文档 https://dev.mysql.com/doc/refman/9.0/en/mysql-nutshell.html
时隔 6 年多,上周 Oracle 发布了 MySQL 最新的大版本 9.0。我们一起来看看新版本有哪些东西。用 JavaScript 写存储过程
新的 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 中继续增强的,比如:目前规划中的 LTS 版是 9.7,估计还要等个几年。9.0 的改动不算多,但也包含了上百个 bug 修复。改动不大的好处是升级会比较容易,个人可以马上搭个 9.0 尝尝鲜,企业里等 9.1.x 版本出来,也可以考虑做测试升级准备了。
虽迟但到!MySQL 可以用 JavaScript 写存储过程了!
Bytebase 签约澳洲 School Bytes,助力教务管理 SaaS 规范化数据库批量变更
代码全开源!数据库工具届的瑞士军刀,替代多款工具的一站式数据库开发平台
Bytebase 产品介绍