统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠云服务严少安严少安注册登录关注作者注册登录最新发布!MySQL 9.0 的向量 (VECTOR) 类型文档更新严少安2024-07-04 北京阅读 5 分钟07月1日,MySQL 9.0.0 创新版本, 8.4.1 LTS, 8.0.38 三版齐发。
发版当天安装包已经可以下载,我也在第一时间做了分享:
当时参考手册还未上线,这两天文档虽已上线,但似乎仍在更新中,大家关注的向量数据类型也从文档中找不到踪影。
不过,在最新版本的文档中 (Document generated on: 2024-07-03 (revision: 78966)),数据类型章节已经添加了 VECTOR 页面。
https://dev.mysql.com/doc/refman/9.0/en/mysql-nutshell.html
MySQL 9.0 新功能:支持 VECTOR 类型
MySQL 9.0 支持 VECTOR 列类型。向量是一种数据结构,由条目列表(4 字节浮点值)组成,可以表示为二进制字符串值或列表格式的字符串。VECTOR 列声明有最大长度或条目数(在括号中);默认值为 2048,最大值为 16383。
VECTOR_DIM()(也在 MySQL 9.0 中添加)返回向量的长度。提供了转换函数。STRING_TO_VECTOR()(别名:TO_VECTOR())采用向量的列表格式表示并返回二进制字符串表示;VECTOR_TO_STRING()(别名:FROM_VECTOR())执行相反的操作,如下所示:
mysql> SELECT STRING_TO_VECTOR(‘[2, 3, 5, 7]’);
+——————————————————————–+
| STRING_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)VECTORhttps://dev.mysql.com/doc/refman/9.0/en/vector.html
VECTOR 是一种可以容纳最多指定数量 N 的条目的结构,定义如下:VECTOR(N)
每个条目是一个 4 字节(单精度)浮点值。
默认长度为 2048;最大长度为 16383 个条目。
mysql> create table tv1 (c1 vector);
Query OK, 0 rows affected (0.01 sec)
mysql> show create table tv1\G
*************************** 1. row ***************************
Create Table: CREATE TABLE `tv1` (
`c1` vector(2048) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
mysql> create table tv2 (c1 vector(16384));
ERROR 6137 (HY000): Data size (65536 Bytes, 16384 dimensions) exceeds VECTOR max (65532 Bytes, 16383 dimensions) for column: ‘c1’
mysql> create table tv3 (c1 vector(1));
Query OK, 0 rows affected (0.02 sec)
mysql> insert tv3 select to_vector(‘[1]’);
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select from_vector(c1) from tv3;
+—————–+
| from_vector(c1) |
+—————–+
| [1.00000e+00] |
+—————–+
1 row in set (0.00 sec)VECTOR 不能与任何其他类型进行比较。它可以与另一个 VECTOR 进行比较以确定相等性,但无法进行其他比较。
VECTOR 列不能用作任何类型的键,包括:主键,外键,唯一键,分区键。
VECTOR 值可与 MySQL 字符串函数 BIT_LENGTH()、CHAR_LENGTH()、HEX()、LENGTH() 和 TO_BASE64() 一起使用。其他字符串函数不接受 VECTOR 类型作为参数。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com



