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


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

首先一点是:

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

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

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

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

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

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

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

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

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

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

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

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


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)


相關推薦

2024-07-09

于 MySQL 9.0“创新版”,最值得关注的新特性莫过于支持向量数据类型,字段类型名称为 VECTOR,可以使 to_vector/string_to_vector/from_vector/vector_dim 等函数操作向量数据。 MySQL 9.0 的 Release Notes 写道: 此版本中添加了对 VECTOR

2024-07-03

noDB ReplicaSet中锁的处理,不再需要多个每个实例的锁。 支持部分或完全解散ClusterSet。 支持在所有能够访问的成员上执行“.execute().”。 升级检查工具支持对外键参照的检查。 以上内容是 MySQL 9.0的部分变化和介绍,详细

2023-04-28

Apache StreamPark(incubating) 是一个流处理应用程序开发管理框架。初衷是让流处理更简单,旨在轻松构建和管理流处理应用程序,提供使用 Apache Flink 和 Apache Spark 等编写流处理应用程序的开发框架。同时,StreamPark 提供了一个流

2024-04-25

固件更新至版本 16 LoongArch:KVM 加速支持,包括 LSX/LASX 向量扩展 RISC-V:针对 Zacas、amocas、RVA22 配置文件、Zaamo、Zalrsc、Ztso 等的 ISA/扩展支持 RISC-V:对 RISC-V 虚拟机的 SMBIOS 支持,对 SRAT、SLIT、AIA、PLIC 的 ACPI 支持和更新的 RH

2023-07-03

直到 Ruihan Li 指出,现在 vma 布局使用 maple tree code,我们真的不只是改变 vm_start 和 vm_end 了,而且 locking 真的被打破了。 一劳永逸地解决这个问题并做适当的 locking 其实并不可怕,但有点痛苦。 我们基本上有三种不同的堆栈扩

2024-08-14

以满足实际业务需求。   与此同时,支撑 RAG 的向量数据库市场竞争愈加激烈。然而从当前向量数据库的实现来看,无论是插件形式,还是专门的向量数据库,底层实现上很多都是采用诸如 HNSW 之类的公开算法,因此一

2023-10-11

前沿技术水准的DataCanvas Alaya九章元识大模型、DingoDB多模向量数据库等多款产品,共同构成 「AIFS人工智能基础软件」和「DataPilot数据领航员」核心产品体系。至此,九章云极DataCanvas公司成功实现构建企业“大+小”模型能力

2023-04-20

式上发生重大改变。 未来 MySQL 将发布 2 个版本,长期支持版和创新版。长期支持版的目标为稳定性,仅修复 BUG 并发布安全补丁,该版本向后兼容,预计每两年发布一次,支持的生命周期为 5 年标准支持 +3 年的延伸支持。创

2021-12-08

糟糕的代码意味着有很多改进的机会,而且管理层也非常支持大规模的重构工作。更令人震惊的是那些坚持认为一切都很好的人(似乎大多数 MySQL 用户和开发人员并没有真正地使用过其他数据库);甚至像执行器这样明显疯狂

2023-08-29

是国家工信部重点扶持项目,同时也获得 2022 年中国开源创新大赛二等奖。 LinkWeChat v4.9.0 主要的升级内容如下: 1.任务裂变与客群裂变功能升级 2.增加企微异常管理记录,便于问题查询。

2022-10-13

el 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 会员模块

2022-10-28

标: 只引用商业友好的开源库如MIT/BSD/Apache/LGPL。 支持国际化语言,初期至少支持英语和中文。 开发完全自主的文本终端,初期至少支持VT100、VT102、VT220终端协议。 开发完全自主的VNC图形终端,支持RFB3.3/3.7/3.8标准协议

2022-04-28

这并没有什么错 你的商业模式严重依赖于 Google……,我真的希望不是这样的,因为你们的工具捍卫了互联网的自由。 这里就不得不多提一句了,Firefox 于 2004 年 11 月正式亮相,下载量在短短 9 个月时间里就超过了 6000 万次,

2023-09-05

件,允许你在现有的关系型数据库 PostgreSQL 上拥有完整的向量数据存储检索能力。 9月1号,PGVECTOR 发布了一个重大版本更新 v0.5 ,引入了一种全新类型的索引:HNSW 。在 ANN Benchmark 中,召回率和性能表现上相比原有的 IVFFLAT 索引