社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySQL 9.0“创新版”已支持向量,为何甲骨文却“偷偷摸摸”地宣布?

OSC开源社区 • 7 月前 • 151 次点击  
MySQL 9.0.0 Innovation(俗称 “创新版”)已于近日发布。
从 MySQL 8.1 开始,官方启用了新的版本模型:MySQL 创新版 (Innovation) 和长期支持版 (LTS)。
根据介绍,两者的质量都已达到可用于生产环境级别。区别在于:
  • 如果希望尝试最新的功能和改进,并喜欢与最新技术保持同步,那么 MySQL 创新版本可能最适合您。
    该版本非常适合在快节奏的开发环境中工作的开发人员和 DBA,其中有高水平的自动化测试和现代的持续集成技术,可以实现更快的升级周期。
  • 如果您的环境需要继续保持已经固定的行为,那么 LTS 版本就是您的不二之选。这些版本仅包含必要的修复,因此可以减少数据库软件行为变更带来的风险。
对于 MySQL 9.0 “创新版”,最值得关注的新特性莫过于支持向量数据类型,字段类型名称为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)
https://dev.mysql.com/doc/refman/9.0/en/vector.html
https://dev.mysql.com/doc/refman/9.0/en/vector-functions.html

MySQL 9.0 前几天发布后就引起了广泛讨论,尤其是 Oracle 官方博客提到新增 Vector 数据类型。
不过 MySQL 数据库专家叶金荣却吐槽称,“MySQL 9.0 手册和 release notes 里只字不提新增 Vector(向量)数据类型及相关函数的事。”
他表示在这两份重要文档中,没任何一处提到新增 Vector 数据类型,在用户手册数据类型部分,也确实没看到关于 Vector 的介绍。
直到昨天,叶老师才发现 MySQL 9.0 用户手册和 release notes 加上了新增向量数据类型的相关说明:
via《Oracle MySQL,怒其不争,自甘堕落》
对于甲骨文这波操作,叶老师表达了自己的看法:
在 MySQL 9.0 里新增向量数据类型是为了 Heatwave 服务,而不是为了 MySQL 社区用户服务。
MySQL 9.0 “向量支持” 的 commit 信息也进一步印证了叶老师的观点:
MySQL HeatWave 是 Oracle 提供的一种数据库服务,它通过集成内存查询加速器来显著提高 MySQL 查询的性能,并且允许用户在不增加复杂性、延迟、风险和成本的情况下,对事务性数据进行实时分析。
用户无需将数据进行 ETL(提取、转换、加载)操作复制到单独的分析数据库中。

参考链接

https://my.oschina.net/actiontechoss/blog/10090445

https://dev.mysql.com/downloads/mysql/

https://dev.mysql.com/doc/relnotes/mysql/9.0/en/news-9-0-0.html#mysqld-9-0-0-vectors

https://blogs.oracle.com/mysql/post/mysql-july-2024-ga-releases-now-available

https://github.com/mysql/mysql-server/commit/8cd51511de7db36971954326af6d10eb7ac5476c

https://www.oracle.com/cn/heatwave/

END


热门文章

完全开源的现代化IDE正式发布:支持云端和桌面、兼容VS Code扩展

中国Flutter“先驱者”——闲鱼即将上线网页版

这款中国程序员开源的游戏引擎,让你用不到100行代码就写出“愤怒的小鸟”

OpenSSH爆高危漏洞(CVE-2024-6387),攻击者能够以root身份执行任意代码


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/172011
 
151 次点击