news 2026/7/7 14:52:51

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/7/7 9:59:04

开关磁阻电机(SRM)仿真:从Matlab到Maxwell

开关磁阻电机仿真,SRM仿真。 开关磁阻电机SRM 的matlab仿真模型以及有限元(Maxwell)仿真与建模。 仿真控制包括电流斩波控制(CCC)角度位置控制(APC)转矩分配函数(TSF)直接…

作者头像 李华
网站建设 2026/7/6 21:36:21

如何利用缓存机制加快Linly-Talker重复内容生成?

如何利用缓存机制加快 Linly-Talker 重复内容生成? 在数字人技术加速落地的今天,越来越多的应用场景要求系统不仅能“说”,还要“说得快”——尤其是在教育、客服和媒体播报这类高频交互领域。用户不希望每次点击“播放课程”都等待十几秒让模…

作者头像 李华
网站建设 2026/7/7 9:50:00

基于Web的跳蚤市场管理系统-计算机毕业设计源码+LW文档分享

摘要 随着移动应用技术的不断进步,现代生活中,人们普遍依赖智能手机、电脑等智能设备来处理日常事务。这一趋势促使众多传统行业开始与互联网融合,逐渐从人工操作向半自动乃至全自动的数字化模式转型。传统的线下管理模式不仅耗费大量时间和人…

作者头像 李华