MySQL 9.0 你搞的毛向量支持,这真的是一个创新版本吗?

2024年 7月 8日 62.9k 0

上周 MySQL 发布了 9.0 Innovation 大版本,很快引起了广泛讨论,主要围绕新增的“向量支持能力”展开。

首先一点是:

在 MySQL 9.0 里新增向量数据类型是为了 Heatwave 服务,而不是为了 MySQL 社区用户服务。

—— 叶金荣,MySQL 数据库专家

MySQL 9.0 你搞的毛向量支持,这真的是一个创新版本吗?-1

估计这个原因(以及下边另一个吐槽点),所以 MySQL 官方在发布公告等地方对于向量支持部分的说明也操作得花里胡哨,藏着掖着。

MySQL 9.0发布,号称支持向量(Vector),但我却看不懂Oracle到底在玩什么

Oracle MySQL,怒其不争,自甘堕落

社区吐槽的另一点是这个向量支持本身。

这个 vector 连 array 都不如,array 还有一堆函数,MySQL 里的这个向量就是 Blob 换个皮。

两个 Vector 连基本的距离运算都没有,抛开序列化函数不谈,就给了一个 VECTOR_DIM 函数告诉你这是多少维的向量。

如果是这种程度的向量函数,那么可以追溯到 1996 年的 array,距今 28 年了。

这真的是一个创新版本吗?

—— 冯若航,Pigsty 创始人 & 作者,PostgreSQL 中文社区开源技术委员

MySQL 9.0 你搞的毛向量支持,这真的是一个创新版本吗?-2

MySQL 9.0 你搞的毛向量支持,这真的是一个创新版本吗?-3

冯若航这两天也将针对这个事情发表雄文,把他的观点具体澄清,指路(公众号“非法加冯”):

MySQL 9.0 你搞的毛向量支持,这真的是一个创新版本吗?-4

MySQL 9.0 Innovation 新特性:

支持向量数据类型,字段类型名称为VECTOR,可以使 to_vector/string_to_vector/from_vector/vector_dim 等函数操作向量数据。

MySQL 9.0 的 Release Notes 写道:

此版本中添加了对 VECTOR 列类型的支持。向量 (Vector) 是一种数据结构,由条目列表(4 字节浮点值)组成,可以表示为二进制字符串值或列表格式的字符串。

VECTOR 列声明有最大长度或条目数(在括号中);默认为 2048,最大为 16383。

下面示例是使用 CREATE TABLE 创建包含 VECTOR 列的 InnoDB 表:

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

操作向量的相关函数介绍:

  • VECTOR_DIM() 函数用于获取向量的长度
  • STRING_TO_VECTOR()(别名TO_VECTOR())函数采用向量的列表格式表示形式,并返回二进制字符串表示形式
  • VECTOR_TO_STRING()(别名FROM_VECTOR())函数执行和上面相反的操作
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)

更多信息和示例查阅:VECTOR Type、Vector Functions (WL #16081)

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论