当前位置: 首页 > news >正文

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

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

  • 版本支持对比
  • 向量索引支持对比
  • 距离函数支持对比
  • 使用限制对比
    • 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/

相关文章:

  • 【教学类-103-02】20250607立体纸盘(3边形-22边形,角度30、45……75、90)
  • Go语言进阶④:Go的数据结构和Java的有啥不一样
  • 力扣-17.电话号码的字母组合
  • LeetCode--24.两两交换链表中的结点
  • Java 常用 API 分类总结(算法竞赛考前速记篇)- 适用于算法竞赛(如 CCF CSP、蓝桥杯、NOI)
  • 音频剪辑软件少之又少好用
  • 13-Oracle 23ai Vector Search VECTOR数据类型和实操
  • 计算机组成原理:计算机发展历程
  • 东芝Toshiba e-STUDIO2110AC打印机信息
  • 基于IDA的bindiff使用
  • BeckHoff(倍福) PLC 顺控器执行超时故障在北尔触摸屏显示的实现
  • gis geoserver 地图发布
  • “硅仙人”吉姆·凯勒(Jim Keller)
  • Riverpod与GetX的优缺点对比
  • iview框架主题色的应用
  • OGG 23ai for DAA 部署与补丁升级
  • C++常用的自动化测试库
  • 从游戏到自动驾驶:互联网时代强化学习如何让机器学会自主决策?
  • Android 相对布局管理器(RelativeLayout)
  • 自然语言处理 目录篇
  • app产品网站建设/二级域名网站查询入口
  • 请人做网站 出现纠纷怎么办/百度seo关键词排名查询
  • 哪家公司建设网站/优化设计答案四年级上册语文
  • wordpress扁平化登录页源码/女装标题优化关键词
  • 做关于植物的网站/企业推广app
  • 深圳做网站哪家公司最好/域名排名查询