news 2026/6/24 10:13:02

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/6/24 12:50:49

环境不稳定?容器化治理方案

1 容器化时代的测试困境随着云原生技术成为主流,容器化部署在提升敏捷性的同时,却给测试工作带来了前所未有的挑战:环境配置不一致、数据状态难以同步、资源争用导致性能波动……这些问题直接影响到测试结果的可靠性与交付效率。本文旨在针对…

作者头像 李华
网站建设 2026/6/22 4:59:22

基于VUE的精品课程网站[VUE]-计算机毕业设计源码+LW文档

摘要:随着在线教育的发展,精品课程网站成为知识传播与教学互动的重要平台。本文阐述基于VUE框架构建精品课程网站的过程。通过需求分析明确网站功能,利用VUE及相关技术进行系统设计,实现课程展示、学习、管理等功能。该网站能有效…

作者头像 李华
网站建设 2026/6/24 1:24:26

仅需3步!用Open-AutoGLM实现低资源地区AI部署(独家指南)

第一章:Open-AutoGLM 数字鸿沟缩小助力 在人工智能技术飞速发展的今天,如何让边缘地区和资源受限环境下的用户也能享受大模型带来的便利,成为行业关注的重点。Open-AutoGLM 作为一款开源的轻量化自动推理框架,致力于通过高效压缩、…

作者头像 李华
网站建设 2026/6/23 13:35:17

小白也能懂!AI智能体构建全攻略:从概念到实现(收藏级教程)

本文详细介绍了AI智能体的构建方法,从基本概念到实际应用,系统阐述了智能体与工作流的区别、使用场景选择、多种实现框架以及核心模式如提示链、路由、并行化等。作者强调成功构建智能体的关键在于保持简洁性、透明度以及精心设计工具文档,并…

作者头像 李华
网站建设 2026/6/22 21:16:47

【收藏干货】0基础/程序员入门大模型应用开发:3个月高效上岸指南

后台总能收到大量类似的咨询:“0基础学大模型应用开发能学会吗?”“程序员转型需要多久?”“没有AI背景会不会被卡简历?”其实这些担心都多余——大模型应用开发的核心是“业务落地能力”,而非学术背景,只要…

作者头像 李华
网站建设 2026/6/23 0:34:33

Linly-Talker能否生成带有图表动画的数据讲解视频?

Linly-Talker能否生成带有图表动画的数据讲解视频? 在自动化内容生成日益普及的今天,一个现实的问题摆在开发者和产品设计者面前:我们能否让数字人不仅“说话”,还能像专业分析师一样,在讲解中同步展示动态图表、趋势曲…

作者头像 李华