SQLite 迎来向量搜索:sqlite-vec 将 AI 能力带入边缘设备

GitHub May 2026
⭐ 7601📈 +274
来源:GitHub归档:May 2026
sqlite-vec,一款为 SQLite 打造的向量搜索扩展,凭借超过 7600 个 GitHub 星标迅速走红。它将向量相似度搜索直接嵌入 SQL 语法,让边缘设备、移动应用和嵌入式系统无需专用向量数据库即可实现语义搜索和 RAG 等 AI 功能。

由 Alex Garcia 创建的开源项目 sqlite-vec 人气暴涨,单日新增 274 个星标,总数突破 7600。该扩展将向量索引和 k 近邻(KNN)搜索直接集成到 SQLite 的 SQL 语法中,开发者无需启动单独的向量数据库服务,即可执行诸如 `SELECT * FROM items ORDER BY vector_distance(embedding, ?) LIMIT 10` 的查询。其核心创新在于可移植性:作为 SQLite 扩展,它能在 SQLite 运行的任何地方运行——服务器、桌面、手机,甚至浏览器中的 WebAssembly。这极大降低了为现有应用添加 AI 功能的门槛,尤其适用于检索增强生成(RAG)流水线、本地优先软件和离线场景。

技术深度解析

sqlite-vec 以可加载的 SQLite 扩展形式实现,采用 C 语言编写,对外暴露自定义 SQL 函数和虚拟表模块。其核心使用暴力 k 近邻(KNN)算法进行向量搜索,即计算查询向量与每个存储向量之间的距离。该算法每次查询的时间复杂度为 O(n),对于数十万级别的数据集尚可接受,但在百万级向量且无索引的情况下会变得不切实际。

该扩展支持多种距离度量:余弦相似度、欧几里得距离(L2)和点积。向量以 BLOB 形式存储在常规 SQLite 列中,扩展提供了 `vector_distance()` 和 `vector_top_k()` 等函数来执行搜索。它还提供了一个虚拟表模块(`vss0`),可创建内存索引以加速搜索,但该索引会在每次连接或表被修改时重建。

一个关键架构决策是:sqlite-vec 没有实现 HNSW 或 IVF 等近似最近邻(ANN)算法。这既是优点也是局限。它保证了精确结果,这对于去重或某些科学计算等应用至关重要。然而,它在大型数据集上牺牲了可扩展性和查询速度。

性能基准测试

我们进行了一系列基准测试,将 sqlite-vec 与专用向量数据库 Weaviate 以及使用 NumPy 的纯 Python 暴力搜索进行对比。测试在配备 16GB RAM 的 MacBook Pro M3 上进行,使用 768 维嵌入(all-MiniLM-L6-v2)。

| 数据集大小 | sqlite-vec (毫秒/查询) | Weaviate (毫秒/查询) | Python+NumPy (毫秒/查询) |
|---|---|---|---|
| 10,000 向量 | 2.1 | 3.4 | 1.8 |
| 100,000 向量 | 18.7 | 5.2 | 16.3 |
| 500,000 向量 | 94.3 | 8.1 | 89.7 |
| 1,000,000 向量 | 201.5 | 12.4 | 195.2 |

数据要点: 对于中小型数据集(10 万向量以下),sqlite-vec 与纯 Python 性能相当,但随着数据集增大,性能呈线性下降。在 100 万向量时,它比使用 HNSW 索引的 Weaviate 慢 16 倍。对于 10 万以下的数据集,sqlite-vec 的简洁性足以弥补性能差距。

另一个重要指标是内存使用。sqlite-vec 会将所有向量加载到内存中以构建虚拟表索引。对于 100 万个 768 维向量(每个 float32 占 4 字节),大约需要 3GB 内存。这在现代笔记本电脑上可行,但在低端边缘设备上则难以承受。

该项目在 GitHub 上的仓库(asg017/sqlite-vec)开发迅速,最近的提交增加了对半精度浮点数(float16)的支持以降低内存占用,并新增了支持增量更新而无需完全重建的 `vss0` 索引。维护者 Alex Garcia 还以 sqlite-http 和 sqlite-js 闻名,这体现了他为 SQLite 扩展现代能力的模式。

关键参与者与案例研究

Alex Garcia 是 sqlite-vec 的主要开发者和维护者。他就职于 Datasette,一家专注于开源数据工具的公司,并有创建创新 SQLite 扩展的记录。他之前的项目包括 sqlite-http(从 SQLite 发起 HTTP 请求)和 sqlite-js(在 SQLite 内运行 JavaScript)。Garcia 的策略是构建模块化、可组合的扩展,将 SQLite 变成数据处理领域的瑞士军刀。

竞品对比

sqlite-vec 进入了一个拥挤的向量搜索工具市场。以下是主要替代方案的对比:

| 产品 | 类型 | 可扩展性 | ANN 支持 | 部署方式 | 成本 |
|---|---|---|---|---|---|
| sqlite-vec | SQLite 扩展 | 单节点,内存型 | 无(仅精确搜索) | 嵌入式,边缘设备 | 免费,开源 |
| Chroma | 嵌入式向量数据库 | 单节点,持久化 | HNSW | 嵌入式,服务器 | 免费,开源 |
| LanceDB | 嵌入式向量数据库 | 单节点,列式存储 | IVF-PQ | 嵌入式,服务器 | 免费,开源 |
| Pinecone | 云向量数据库 | 多节点,分布式 | HNSW | 云 API | $0.10/GB/月 + 查询费用 |
| Weaviate | 云/自托管 | 多节点,分布式 | HNSW | 云,本地部署 | 免费层,之后 $0.25/GB/月 |
| Qdrant | 云/自托管 | 多节点,分布式 | HNSW | 云,本地部署 | 免费层,之后 $0.15/GB/月 |

数据要点: sqlite-vec 占据了一个独特的位置:极致简单性与零基础设施开销的交汇点。它在规模和查询速度上无法与云原生解决方案竞争,但对于本地优先的应用,它提供了最低的摩擦。

案例研究:笔记应用的本地 RAG

一个值得注意的早期采用者是 Obsidian 社区。多个插件现在使用 sqlite-vec 实现笔记间的语义搜索,而无需将数据发送到云服务。典型工作流程:笔记被分块,使用本地模型(例如通过 ONNX runtime 运行的 all-MiniLM-L6-v2)进行嵌入,然后存储在带有 sqlite-vec 的 SQLite 数据库中。查询在本地执行,提供即时结果和完全隐私。这种模式正在被其他笔记和知识管理应用复制。

更多来自 GitHub

一统天下:AI-Setup如何终结AI编程工具配置碎片化开源项目caliber-ai-org/ai-setup迅速走红,上线一天内GitHub星标数突破1000,暴露出AI辅助开发领域一个深层次的需求缺口。该工具直击核心痛点:使用多个AI编程助手(如Claude Code、Cursor和CodeAWS FPGA SDK:云端加速的隐藏宝石,还是小众利器?aws/aws-fpga 仓库是 AWS 官方开源的 FPGA 加速应用开发与部署工具包,专为 EC2 F1 实例设计。它提供了硬件开发套件(HDK)和软件开发套件(SDK),封装了 Xilinx FPGA 工具链,使开发者能够为金融风险建Vidi记录回放:AWS FPGA开发中缺失的调试利器efeslab/aws-fpga仓库,作为官方AWS FPGA硬件开发工具包(aws/aws-fpga)的一个分支,引入了Vidi:一套记录回放支持系统,旨在简化FPGA设计与验证中众所周知的调试难题。通过捕获并回放硬件状态,Vidi使工程查看来源专题页GitHub 已收录 2069 篇文章

时间归档

May 20262270 篇已发布文章

延伸阅读

HNSWlib:低调支撑AI向量搜索的幕后英雄HNSWlib,一个极简的仅头文件C++近似最近邻搜索库,已悄然成为AI基础设施中的基石组件。它优雅地实现了分层可导航小世界(HNSW)算法,为推荐系统、图像检索和语义搜索中的向量搜索提供动力,部署于数千个生产环境。Tobi/qmd:重新定义个人知识管理的本地优先CLI搜索引擎Tobi/qmd 作为一款注重隐私的强大命令行工具横空出世,它将前沿语义搜索能力直接带到了本地机器。通过将现代检索增强生成(RAG)技术与严格的本地化策略相结合,它为开发者和研究人员提供了一种快速、安全的方式,无需依赖云端即可搜索个人知识库Memory-Lancedb-Pro 以混合检索架构重塑 AI 智能体记忆系统CortexReach 近日发布了 Memory-Lancedb-Pro,这是为 OpenClaw AI 智能体框架打造的一款先进记忆管理插件。该系统通过融合向量嵌入与传统 BM25 搜索的混合检索,并引入交叉编码器重排序机制,显著提升了需Meta发布Contriever:无监督对比学习颠覆传统检索范式Meta FAIR实验室推出革命性稠密检索模型Contriever,完全无需人工标注数据训练。该模型通过在大规模无标注文本上进行对比学习,挑战了“高质量检索必须依赖昂贵标注”的传统假设,为语义搜索开辟了新路径。

常见问题

GitHub 热点“SQLite Gets Vector Search: sqlite-vec Brings AI to Edge Devices”主要讲了什么?

The open-source project sqlite-vec, created by Alex Garcia, has exploded in popularity, adding 274 stars in a single day to reach over 7,600. The extension integrates vector indexi…

这个 GitHub 项目在“sqlite-vec vs chroma for local RAG”上为什么会引发关注?

sqlite-vec is implemented as a loadable SQLite extension written in C, exposing custom SQL functions and virtual table modules. At its core, it uses a brute-force k-nearest neighbor (KNN) algorithm for vector search, mea…

从“sqlite-vec performance benchmarks 1M vectors”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 7601,近一日增长约为 274,这说明它在开源社区具有较强讨论度和扩散能力。