前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 9.0中的Vector数据类型与函数

MySQL 9.0中的Vector数据类型与函数

作者头像
MySQLSE
发布2024-07-08 15:58:21
1160
发布2024-07-08 15:58:21
举报
文章被收录于专栏:MySQL解决方案工程师

Vector相关的信息和内容在MySQL 9.0中出现了,惊不惊喜,意不意外?该来的终将到来,虽然第一时间发布的发行一览和手册中没有任何关于Vector的内容,但在随后的更新中已经将这部分内容反映到文档当中,让我们一探究竟。

在当今生成式AI火爆的背景下,相关产品都在进行积极地开发,MySQL自然不能例外,尤其是新发布的MySQL Heatwave GenAI,提供了数据库内的向量存储及用自然语言进行语境对话的能力。既然Heatwave中支持了向量存储,那么本地部署的MySQL 9.0也要具备相应的能力才能够让用户顺利地使用MySQL Heatwave GenAI。

MySQL9.0中发布了新的数据类型Vector及相对于的三个函数。

Vector数据类型:VECTOR(N)是一个指定条目数量的数据结构。每一个条目是一个4字节单精度浮点值,条目的数量默认为2048,最大值为16383。例如,

代码语言:javascript
复制
Create Table: CREATE TABLE `testtablev` (
  `id` int DEFAULT NULL,
  `3d` vector(2048) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

需要注意,vector类型具有一些限制,例如,无法将其与其他类型的数据进行比较,可以将其与vector类型的数据进行等值比较,但无法进行其他的比较。vector列无法作为任何键使用。

vector值可以用于 BIT_LENGTH()、CHAR_LENGTH()、HEX()、 LENGTH(),及 TO_BASE64()函数,其他的字符串相关函数无法使用vector值作为参数。此外,vector值还可以用于 AES_ENCRYPT()、 COMPRESS()、MD5()、SHA1(),及SHA2()加密函数,及COALESCE()、IFNULL()、 NULLIF(),和IF()。

vector值无法作为聚合函数或窗口函数的参数使用,也无法进行下列操作或函数的参数使用:

  • 数值函数和运算符
  • 时间函数
  • 全文检索功能
  • XML函数
  • 位函数,AND和OR
  • JSON函数

Vector函数:伴随着vector类型的推出,9.0同时推出了三个函数与之配合,分别是:

STRING_TO_VECTOR(string):与TO_VECTOR()相同,将字符串表示为VECTOR列的二进制值。例如,

代码语言:javascript
复制
mysql> SELECT STRING_TO_VECTOR("[3.14,2024,18]");
+------------------------------------------------------------------------+
| STRING_TO_VECTOR("[3.14,2024,18]")                                     |
+------------------------------------------------------------------------+
| 0xC3F548400000FD4400009041                                             |
+------------------------------------------------------------------------+
1 row in set (0.00 sec)

VECTOR_TO_STRING():与FROM_VECTOR()相同,所具有的功能与TO_VECTOR()相反。例如,

代码语言:javascript
复制
mysql> SELECT VECTOR_TO_STRING(0xC3F548400000FD4400009041);
+----------------------------------------------+
| VECTOR_TO_STRING(0xC3F548400000FD4400009041) |
+----------------------------------------------+
| [3.14000e+00,2.02400e+03,1.80000e+01]        |
+----------------------------------------------+
1 row in set (0.00 sec)

VECTOR_DIM(vector):返回该向量包含的条目数量。例如,

代码语言:javascript
复制
mysql> SELECT VECTOR_DIM(0xC3F548400000FD4400009041);
+----------------------------------------+
| VECTOR_DIM(0xC3F548400000FD4400009041) |
+----------------------------------------+
|                                      3 |
+----------------------------------------+
1 row in set (0.00 sec)

以上内容是关于MySQL9.0中Vector数据类型和函数的简介,详细内容请访问官方手册,期待您挖掘出MySQL有趣的内容。

感谢关注“MySQL解决方案工程师”!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档