MySQL 9.0:JavaScript 命令和新的向量类型

20天前 24.6k 0

MySQL 9.0 版本带来了主要的新功能:创新版本为 SQL 提供了 JavaScript 函数,并为 AI 朋友提供了向量类型。

MySQL 9.0:JavaScript 命令和新的向量类型-1

属于Oracle的MySQL数据库的新版本已经发布:9.0.0(创新版本),8.4.1(长期支持)和8.0.38(长期支持)。虽然长期支持版本是为了稳定性而设计的,但创新版本提供了新功能,特别是存储的 JavaScript 和 Vector type 9.0 的情况。

新的存储 JavaScript 仅在企业版中可用,并且基于多语言引擎 (MLE),该引擎为 SQL 以外的其他语言打开了数据库。ECMAScript 2023 严格允许使用所有常见对象,例如 Object 、 Function 、 Math 、 Date 和 String JSON,但不允许使用新的向量类型。控制台输出通过 console.log() 和 console.error() 也提供。字符串必须采用 utf8mb4 格式。存储的 JavaScript 示例:

JavaScript 示例:

mysql> CREATE FUNCTION gcd(a INT, b INT)
RETURNS INT
NO SQL
LANGUAGE JAVASCRIPT AS
$mle$
let x = Math.abs(a)
let y = Math.abs(b)
while(y) {
var t = y
y = x % y
x = t
}
return x
$mle$
;

新类型:Vector

向量数据库在 AI 模型开发人员中特别受欢迎。开发人员现在还可以在MySQL中使用列类型 VECTOR 映射此内容,其中包含4字节浮点值的列表。它可以以二进制或列表形式表示为字符串。例:

mysql> CREATE TABLE v1 (c1 VECTOR(5000));
Query OK, 0 rows affected (0.03 sec)

特别是用于处理向量的新功能和 STRING_TO_VECTOR() VECTOR_TO_STRING() :

mysql> SELECT STRING_TO_VECTOR('[2, 3, 5, 7]');
+------------------------------------------------------+
| TO_VECTOR('[2, 3, 5, 7]') |
+------------------------------------------------------+
| 0x00000040000040400000A0400000E040 |
+------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT VECTOR_TO_STRING(0x00000040000040400000A0400000E040);
+------------------------------------------------------+
| VECTOR_TO_STRING(0x00000040000040400000A0400000E040) |
+------------------------------------------------------+
| [2.00000e+00,3.00000e+00,5.00000e+00,7.00000e+00] |
+------------------------------------------------------+
1 row in set (0.00 sec)

但是,向量类型有许多限制:它不能接受某些键,包括主键。不允许使用某些函数:数字、全文搜索、XML 和 JSON 函数。字符串和加密功能也受到限制。而且它无法与其他类型相提并论。

版本 9.0 中的其他细微更改是现在 EXPLAIN ANALYZE INTO 接受 JSON 作为预准备语句的格式或扩展。有些内容也被弃用,不应再使用,例如表的 MIN_VALUE variables_info and MAX_VALUE 列。Oracle 已完全删除 mysql_native_password 插件。

有关版本 9.0 的更多信息,请参阅文档,并在博客中找到其他新版本。

作者:Wolf Hosbach

2024 年 7 月 4 日

相关文章

【TiDB 社区智慧合集】TiDB 在核心场景的实战应用
如何理解数据库增量备份
Navicat for MySQL 17 | 实现更明智的业务决策
tidb8.1的磁盘选择,关于网络ssd,和本地ssd的选择对性能影响很大,差距60倍。
ORA-00600 internal error code, arguments [25026]
ORA-01555 caused by SQL statement below (SQL ID

发布评论