主流信创数据库对向量功能的支持对比

news2025/6/8 9:54:22

主流信创数据库对向量功能的支持对比

  • 版本支持对比
  • 向量索引支持对比
  • 距离函数支持对比
  • 使用限制对比
    • OceanBase向量数据库
    • GaussDB向量数据库
    • TiDB向量数据库
    • VastBase向量数据库

⭐️ 本文章引用数据截止于2025年5月31日。

版本支持对比

数据库产品支持向量功能的版本
OceanBaseOceanBase数据库最早开始支持向量的版本是2024年3月发布的v4.3.0版本。最新的支持版本是v4.3.5 BP2
GaussDBGaussDB目前仅能确认2024年4月发布的v2.0-8.102主备版支持向量功能。
TiDBTiDB从2024年11月发布的v8.4.0开始支持向量(实验特性)。最新的支持版本是v8.5.1
VastBase海量数据库从2025年1月发布的v3.0 Build 8开始支持向量特性。最新的支持版本是v3.0 Build 8 (Patch No.1)

📖 目前国内主流信创数据库基本都是从2024年开始支持向量搜索功能的。而且对很多数据库产品来说目前都还是实验室特性,官方推荐的生产环境基线版本并不支持。例如OceanBase目前的基线版本是v4.2版本,而支持向量特性的最低版本是v4.3。

向量索引支持对比

数据库产品支持的向量索引类型
OceanBaseOceanBase最新版本(v4.3.5)支持HNSW索引、HNSW_SQ索引、HNSW_BQ索引、IVF索引。其中IVF索引为实验室特性。
GaussDBGaussDB的v2.0-8.102主备版支持IVF-Flat索引、DiskANN索引。
TiDBTiDB最新版本(v8.5)仅支持HNSW索引。
VastBaseVastBase最新版本(v3.0.8)支持HNSW索引、IVF-Flat索引、IVF-PQ索引、DiskANN索引。

📖 目前国内主流信创数据库对向量索引类型支持最全面的是VastBase,支持种类最少的数据库产品是TiDB。几乎所有向量数据库都支持HNSW索引。

距离函数支持对比

数据库产品支持的向量距离函数
OceanBaseL2_distance(欧几里得距离)、L1_distance(曼哈顿距离)、Cosine_distance(余弦相似度)、Inner_product(点积)、Negative_inner_product(负内积)、Vector_distance
GaussDBL2_distance(欧几里得距离)、Cosine_distance(余弦相似度)、vector_spherical_distance(球面距离)、Inner_product(点积)、Negative_inner_product(负内积)
TiDBL2_distance(欧几里得距离)、L1_distance(曼哈顿距离)、Cosine_distance(余弦相似度)、Negative_inner_product(负内积)
VastBaseL2_distance(欧几里得距离)、Cosine_distance(余弦相似度)、vector_spherical_distance(球面距离)、Inner_product(点积)、Negative_inner_product(负内积)

📖 目前国内主流信创数据库基本都支持计算欧几里得距离、余弦相似度、内积和负内积。个别产品还支持计算曼哈顿距离和球面距离。

使用限制对比

OceanBase向量数据库

  1. OceanBase向量数据库目前仅MySQL租户模式支持向量检索,Oracle租户模式暂不支持。
  2. OceanBase向量数据库最高支持16000维的Float类型的稠密向量数据存储,同时也支持稀疏向量数据存储。
  3. OceanBase向量数据库中对超过4096维的向量建索引时,需要对数据做维度压缩,压缩到4096维以内之后再建索引。
  4. OceanBase向量数据库支持使用SQL和Python SDK两种协议方式进行向量检索。
  5. OceanBase向量数据库支持与OpenAI API、通义千问API、Langchain、LlamaIndex等主流AI框架集成。

GaussDB向量数据库

  1. 当前版本只支持单机部署,集中式部署;不支持分布式和小型化部署。
  2. 创建表维度不能超过1024,即维度范围在[1, 1024]
  3. 不支持创建分布表全局索引(gpi)。
  4. 向量索引不支持创建Unique索引。
  5. 向量索引不支持聚簇排序。
  6. 向量索引不支持创建多列索引。
  7. floatvector和boolvector不支持作为分区键。
  8. floatvector和boolvector不支持创建主键。
  9. floatvector和boolvector不支持创建Unique键。
  10. floatvector和boolvector不支持为NULL值。
  11. dblink暂不支持vector类型,因此也不支持向量索引创建。
  12. 向量索引不支持备机可读。
  13. 向量索引不支持增量构建,不支持在线创建。
  14. Floatvector和boolvector类型不支持创建除向量索引以外的索引(例如btree和ubtree)。
  15. 当前向量索引只支持距离TopK语句(按照距离升序排序),其他距离操作不进行索引。
  16. 索引构建时间较长,内存规格低的场景需要预留构建时间。
  17. 图索引空间膨胀率较大,磁盘规格低的场景无法创建成功。
  18. 向量检索是资源密集型操作,如果同时进行多个业务,会影响性能。
  19. 不支持unlogged、temp表构建向量索引。
  20. 使用ustore索引,相比于astore索引空间增长10%以内,检索时延增加5%。
  21. 索引依赖Vacuum进行空间回收,两次Vacuum之间如果存在频繁增删,向量检索会出现效率下降、空间膨胀的问题。
  22. 索引类型不支持统计信息,选择率估计使用默认值,有代价估计,但是目前只支持索引和顺序扫描进行选择。

TiDB向量数据库

  1. 集群需要提前部署TiFlash节点。
  2. 向量搜索索引不能作为主键或者唯一索引。
  3. 向量搜索索引只能基于单一的向量列创建,不能与其他列(如整数列或字符串列)组合形成复合索引。
  4. 创建和使用搜索向量索引时需要指定距离函数。目前只支持余弦距离函数VEC_COSINE_DISTANCE()和L2距离函数VEC_L2_DISTANCE()
  5. 不支持在同一列上创建多个使用了相同距离函数的向量搜索索引。
  6. 不支持直接删除具有向量搜索索引的列。可以通过先删除列上的向量搜索索引,再删除列的方式完成删除。
  7. 不支持修改带有向量索引的列的类型。
  8. 不支持将向量搜索索引设置为不可见。
  9. 不支持在开启了静态加密的TiFlash节点上构建向量搜索索引。

VastBase向量数据库

  1. 不允许建立超过16000个维度的向量字段。DiskANN索引支持在不超过2048维度的字段上建立。其他向量索引仅支持在不超过2000维度的字段上建立。

  2. 不支持以下向量运算符:

  • ||(拼接两个向量)
  • *(两个向量逐元素相乘)
  • <+>(计算两个向量之间的曼哈顿距离)
  1. 不支持以下向量比较符:
  • =(用于判断两个向量的所有对应元素是否完全相等)
  • >(用于判断一个向量是否大于另一个向量)
  • <(用于判断一个向量是否小于另一个向量)
  • >=(用于判断一个向量是否大于等于另一个向量)
  • <=(用于判断一个向量是否小于等于另一个向量)
  • <>(用于判断两个向量是否不同)
  • !=(用于判断两个向量是否不同)
  • BETWEEN(判断向量是否在指定范围内)
  1. count()之外, 向量字段不支持其他聚合函数。
  2. 向量字段不支持unioncol in(...)语法。
  3. 向量字段不能用在GROUP BY/ORDER BY子句中。
  4. 向量字段不能作为主键或唯一性约束。
  5. 建立索引删除/更新大量数据后应先vaccum再重建索引。
  6. 匿名块绑定变量仅支持返回text类型,不支持返回驱动定义的PGvector类型。
  7. IVF-PQ子查询受外层LIMIT子句影响,可能导致查询召回率下降。
  8. 索引返回元组数可能少于走全表扫描的数据或者LIMIT子句指定的数量。
  9. 向量标量混合查询,走索引查询返回的结果可能少于走全表扫描的结果。

Referecnes
【1】https://doc.hcs.huawei.com/zh-cn/gaussdb/doc/download/pdf/gaussdb-vector-cent.pdf
【2】https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012936
【3】https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002046118
【4】https://docs.vastdata.com.cn/zh_CN/VastbaseG100/V3.0.8/1/5e3842f9085a4fd5b491f3203651ff7d
【5】https://docs.pingcap.com/zh/tidb/stable/release-8.4.0/
【6】https://docs.pingcap.com/zh/tidb/stable/vector-search-overview/
【7】https://docs.pingcap.com/zh/tidb/stable/vector-search-index/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2403993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HA: Wordy靶场

HA: Wordy 来自 <HA: Wordy ~ VulnHub> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.128&#xff0c;靶场IP192.168.23.130 3&#xff0c;对靶机进行端口服务探…

中国移动6周年!

基站超过250万个 网络规模全球最大、质量最优 覆盖全国96%人口 在全国率先实现乡乡双千兆 服务用户超5.7亿 网络上下行均值接入速率均居行业首位 行业应用快速推广&#xff0c;数量超5万个 3CC、RedCap、通感一体、 无线AI改造等技术成熟商用 客户品牌持续升级&#x…

408第一季 - 数据结构 - 树与二叉树II

二叉树的先中后序遍历 理解 那主播&#xff0c;请问你有没有更快的遍历方式呢 有的&#xff0c;兄弟有的 以中序遍历为例啊 找左边有没有东西&#xff0c;左边没东西那它就自由了&#xff0c;就按上面的图举例子 A左边有东西&#xff0c;是B&#xff0c;B左边没东西&#xf…

从上下文学习和微调看语言模型的泛化:一项对照研究

大型语言模型表现出令人兴奋的能力&#xff0c;但也可以从微调中表现出令人惊讶的狭窄泛化。例如&#xff0c;他们可能无法概括为简单的关系反转&#xff0c;或者无法根据训练信息进行简单的逻辑推理。这些未能从微调中概括出来的失败可能会阻碍这些模型的实际应用。另一方面&a…

智慧城市建设方案

第1章 总体说明 1.1 建设背景 1.2 建设目标 1.3 项目建设主要内容 1.4 设计原则 第2章 对项目的理解 2.1 现状分析 2.2 业务需求分析 2.3 功能需求分析 第3章 大数据平台建设方案 3.1 大数据平台总体设计 3.2 大数据平台功能设计 3.3 平台应用 第4章 政策标准保障…

pygame开发的坦克大战

使用Python和Pygame开发的精美坦克大战游戏。这个游戏包含玩家控制的坦克、敌方坦克、各种障碍物、爆炸效果和完整的游戏机制。 游戏说明 这个坦克大战游戏包含以下功能&#xff1a; 游戏特点 玩家控制&#xff1a;使用方向键移动坦克&#xff0c;空格键射击 敌人AI&#x…

功能安全实战系列09-英飞凌TC3xx LBIST开发详解

本文框架 0. 前言1.What?1.1 基本原理1.1.1 检测范围1.1.2 LBIST与锁步核对比1.1.3 控制寄存器1.2 关联Alarm2. How?2.1 LBIST触发?2.1.1 SSW配置自动触发2.1.2 软件手动触发LBIST2.2 实现策略2.3 测试篇LBIST对启动时间的影响如何确定当前LBIST是否已使能?如何确定当前LBI…

一个完整的日志收集方案:Elasticsearch + Logstash + Kibana+Filebeat (二)

&#x1f4c4; 本地 Windows 部署 Logstash 连接本地 Elasticsearch 指南 ✅ 目标 在本地 Windows 上安装并运行 Logstash配置 Logstash 将数据发送至本地 Elasticsearch测试数据采集与 ES 存储流程 &#x1f9f0; 前提条件 软件版本要求安装说明Java17Oracle JDK 下载 或 O…

RT-Thread内核组成——内核移植

内核移植就是指将 RT-Thread 内核在不同的芯片架构、不同的板卡上运行起来&#xff0c;能够具备线程管理和调度&#xff0c;内存管理&#xff0c;线程间同步和通信、定时器管理等功能。移植可分为 CPU 架构移植和 BSP&#xff08;Board support package&#xff0c;板级支持包&…

基于Java(SpringBoot、Mybatis、SpringMvc)+MySQL实现(Web)小二结账系统

结账系统 1.引言 1.1.编写目的 此说明书在概要设计的基础上&#xff0c;对小二结账系统的各个模块、程序分别进行了实现层面上的要求和说明。在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。在本阶段中&#xff0c;确定应该如何具体的实现所要求的…

三维GIS开发cesium智慧地铁教程(4)城市白模加载与样式控制

一、添加3D瓦片 <!-- 核心依赖引入 --> <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"><!-- 模型数据路径 --> u…

越狱蒸馏-可再生安全基准测试

大家读完觉得有帮助记得关注&#xff01;&#xff01;&#xff01; 摘要 大型语言模型&#xff08;LLMs&#xff09;正迅速部署在关键应用中&#xff0c;这引发了对稳健安全基准测试的迫切需求。我们提出了越狱提炼&#xff08;JBDISTILL&#xff09;&#xff0c;这是一种新颖…

64、js 中require和import有何区别?

在 JavaScript 中&#xff0c;require 和 import 都是用于模块导入的语法&#xff0c;但它们属于不同的模块系统&#xff0c;具有显著的区别&#xff1a; 1. 模块系统不同 require 属于 CommonJS 模块系统&#xff08;Node.js 默认使用&#xff09;。 语法&#xff1a;const…

手机号段数据库与网络安全应用

手机号段数据库的构成与原理 手机号段数据库存储着海量手机号段及其关联信息&#xff0c;包括号段起始与结束号码、运营商归属、地区编码、卡类型等核心数据。这些数据主要来源于通信管理机构的官方分配信息、运营商的业务更新数据以及合法采集的使用数据。经过数据清洗、校验…

Kafka 入门指南与一键部署

Kafka 介绍 想象一下你正在运营一个大型电商平台&#xff0c;每秒都有成千上万的用户浏览商品、下单、支付&#xff0c;同时后台系统还在记录用户行为、更新库存、处理物流信息。这些海量、持续产生的数据就像奔腾不息的河流&#xff0c;你需要一个强大、可靠且实时的系统来接…

Oracle正则表达式学习

目录 一、正则表达简介 二、REGEXP_LIKE(x,匹配项) 三、REGEXP_INSTR 四、REGEXP_SUBSTR 五、REGEXP_REPLACE 一、正则表达简介 相关网址&#xff1a; https://cloud.tencent.com/developer/article/1456428 https://www.cnblogs.com/lxl57610/p/8227599.html https://…

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表

微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表 Microsoft Power BI 可帮助您通过交互式报表准备数据并对数据进行可视化。 如果您是 Power BI 的新用户&#xff0c;可能很难知道从哪里开始&#xff0c;并且创建报表可能很耗时。 通过适用于 Power BI …

Prompt提示工程指南#Kontext图像到图像

重要提示&#xff1a;单个prompt的最大token数为512 # 核心能力 Kontext图像编辑系统能够&#xff1a; 理解图像上下文语义实现精准的局部修改保持原始图像风格一致性支持复杂的多步迭代编辑 # 基础对象修改 示例场景&#xff1a;改变汽车颜色 Prompt设计&#xff1a; Change …

产品经理课程(十一)

&#xff08;一&#xff09;复习 1、用户需求不等于产品需求&#xff0c;挖掘用户的本质需求 2、功能设计的前提&#xff1a;不违背我们的产品的基础定位&#xff08;用一句话阐述我们的产品&#xff1a;工具&#xff1a;产品画布&#xff09; 3、判断设计好坏的标准&#xf…

Moldflow充填分析设置

1. 如何选择注塑机&#xff1a; 注塑机初选按注射量来选择&#xff1a; 点网格统计;选择三角形, 三角形体积就是产品的体积 47.7304 cm^3 点网格统计;选择柱体, 柱体的体积就是浇注系统的体积2.69 cm^3 所以总体积产品体积浇注系统体积 47.732.69 cm^3 材料的熔体密度与固体…