news 2026/10/3 3:06:35

TiDB 向量能力上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TiDB 向量能力上手指南

作者: MrSylar 原文来源: https://tidb.net/blog/41420212

Preface

TiDB v8.4(DMR) 版本开始提供向量搜索的实验特性,其向量能力基于 tiflash 构建。向量数据类型 vector 向量最大支持 16383 维, 向量搜索索引类型支持 HNSW (Hierarchical Navigable Small World) 。本文使用 TiDB v8.5.2 版本。

使用基础

创建向量索引

TiDB支持两种方式创建向量索引:

1)随建表对向量类型 vector 列创建 HNSW 索引

sql CREATE TABLE foo ( id INT PRIMARY KEY, embedding VECTOR(5), VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))) );

2)建表后对向量类型 vector 列创建 HNSW 索引

sql CREATE VECTOR INDEX idx_embedding ON foo ((VEC_COSINE_DISTANCE(embedding))); ALTER TABLE foo ADD VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))); -- 你也可以显式指定 "USING HNSW" 使用 HNSW 构建向量搜索索引 CREATE VECTOR INDEX idx_embedding ON foo ((VEC_COSINE_DISTANCE(embedding))) USING HNSW; ALTER TABLE foo ADD VECTOR INDEX idx_embedding ((VEC_COSINE_DISTANCE(embedding))) USING HNSW; -- 查看索引构建进度 SELECT * FROM INFORMATION_SCHEMA.TIFLASH_INDEXES; 通过字段 ROWS_STABLE_INDEXED 和 ROWS_STABLE_NOT_INDEXED 列查看索引构建进度,当 ROWS_STABLE_NOT_INDEXED 变为 0 时,表示索引构建完成

使用向量索引

TiDB 支持 SQL 和 Python SDK 两种方式使用向量搜索功能,其中 SQL 方式通过 ORDER BY ... LIMIT 子句来使用向量搜索索引,示例所示:

SQL

SELECT *FROM foo ORDER BY VEC_COSINE_DISTANCE(embedding, '[1, 2, 3, 4, 5]') LIMIT 10

性能测试

VectorDBBench 是一款对向量数据库进行基准性能和容量测试的工具,

[VectorDBBbench 项目地址]( https://github.com/zilliztech/VectorDBBench "VectorDBBbench github"),测试结果的指标中主要关注包括 qps、recall(召回率)、响应时间等。本文采用 5 台服务器做了初步性能测试,数据集 dataset 采用 biaosq_10m,向量维度1024维,服务器角色分配如下:

| 服务器 | 角色 | | ----------- | ----------- | | Server1 | tidb、tikv、pd | | Server2 | tidb、tikv、pd | | Server3 | tidb、tikv、pd | | Server4 | tiflash | | Server5 | tiflash | | Server6 | vectordbbench、haproxy |

性能测试结果(仅供参考,未尝试任何优化)如下:

|TiFlash 实例数量| QPS | latency(p99) |Recall | |-----------| ----------- | ----------- |------- | |1 | 108 | 0.0694 |0.9256| |2 | 45 | 0.1514 | 0.9558 |

\

业界产品性能可以参考 [VectorDB leader board]( https://zilliz.com/vdbbench-leaderboard?dataset=vectorSearch )

展望

本次测试中,向量的功能和性能已经基本满足业务使用。当然对比同类产品,也客观存在一些不足,例如 ivf 向量索引、混合搜索、向量内存管理等还不支持。通过线下交流了解到,TiDB 团队正紧锣密鼓深耕向量存储、检索效率及生态适配等核心方向,很快将推出集成更多实用功能、性能进一步优化的新版本,值得期待。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 5:26:30

从实验室到乡村课堂,Open-AutoGLM如何改变千万人命运?

第一章:从实验室到乡村课堂,Open-AutoGLM的使命与愿景 Open-AutoGLM 并非诞生于商业路演或资本会议室,而是源自一群高校研究者在偏远山区支教时的真实困境。当最先进的大语言模型仍在实验室中优化参数时,那些连稳定网络都无法保障…

作者头像 李华
网站建设 2026/10/2 14:56:57

Linly-Talker能否支持触觉反馈实现多感官交互?

Linly-Talker能否支持触觉反馈实现多感官交互? 在智能交互系统不断突破感知边界的今天,我们已经习惯了数字人“能听会说、表情丰富”的表现。像 Linly-Talker 这样的开源项目,仅凭一张照片就能驱动出自然对话语音与精准口型同步的虚拟形象&am…

作者头像 李华
网站建设 2026/10/3 0:09:25

为什么顶尖团队都在布局Open-AutoGLM?一文看懂其与大模型的协同潜力

第一章:Open-AutoGLM 的崛起与行业影响 Open-AutoGLM 作为新一代开源大语言模型框架,凭借其高效的自动推理机制与灵活的模块化设计,在自然语言处理领域迅速崭露头角。该框架融合了生成式语言建模与自动化任务调度能力,显著提升了复…

作者头像 李华
网站建设 2026/10/2 4:45:07

等效氢气消耗最小的燃料电池混合动力能量管理策略 基于matlab平台开展,纯编程,.m文件 该...

等效氢气消耗最小的燃料电池混合动力能量管理策略 基于matlab平台开展,纯编程,.m文件 该方法作为在线能量管理方法,可作为比较其他能量管理方法的对比对象。 该方法为本人硕士期间编写,可直接运行 可更换任意工况运行能量管理策略…

作者头像 李华
网站建设 2026/10/2 6:06:47

GSV2221G@ACP#2221G产品规格详解及产品应用分享(1220总结)

一、产品核心概述GSV2221G 是由 GSCoolink(基石酷联微电子)推出的高性能、低功耗转换器芯片,主打DisplayPort 1.4 MST 与 HDMI 2.0/DP/eDP之间的信号转换,集成 OSD Blender(屏幕显示混合器)、DSC 解码器&am…

作者头像 李华
网站建设 2026/10/2 5:51:19

基于Web的学生学业质量分析系统-计算机毕业设计源码+LW文档分享

摘要 如今,在科学技术飞速发展的情况下,信息化的时代也已因为计算机的出现而来临,信息化也已经影响到了社会上的各个方面。它可以为人们提供许多便利之处,可以大大提高人们的工作效率。随着计算机技术的发展的普及,各个…

作者头像 李华