MySQL在本月发布了9.0大版本,作为MySQL的忠实粉丝,简单说下这次大版本更新。
1. 企业版,支持JS存储程序(JavaScript stored programs)了。
例如,可以像这样定一个函数:
然而,这并没有什么luan用,互联网公司,谁用企业版呢?
2. 支持向量类型(VECTOR type)了。
向量是一个新的列类型,这种数据结构可以粗浅的理解为数组,其数组最大长度为16383(默认为2048),数组元素可以解析为二进制或者字符串。
举个例子,InnodB可以这么创建向量类型的列:
存取某个元素时,可以使用 STRING_TO_VECTOR 或者 VECTOR_TO_STRING:
需要说明的是,向量类型的列有着诸多缺陷:
(1)不能作为任何种类的键:主键,唯一键,分区键…都不行;
(2)不能与其他任何类型的列进行比较;
(3)绝大部分函数与操作符,都不接受向量作为参数;
总来的来说,也没有什么luan用,咱们还是老老实实用blob或者text吧。
3. EXPLAIN ANALYZE 可以输出为JSON格式了。
咦,看似可读性变强了。注意,仅当服务端配置了 explain_json_format_version 才有效。
4. DDL EVENT可以支持prepare了。
更具体来说:
CREATE EVENT
ALTER EVENT
DROP EVENT
可以被prepared了。
额,DDL执行频率本来就低,几乎不会配合 PREPARE / EXECUTE 使用。
5. 新增了两个新的系统表。
variables_metadata表:提供了一些关于系统变量的信息,包含每个系统变量的名称,类型,范围等;
global_variable_attributes表:提供了一些全局变量属性的信息;
额,如果你不是DBA,这两个表几乎也用不到..