首页/AI/RAG 与向量库速查/pgvector 批量写入与更新
本包目录(229 条)
架构与流程30 条解析与切分33 条Embedding 与检索50 条
向量数据库49 条
重排与生成32 条评估与优化35 条

pgvector 批量写入与更新

入库大表时用 COPY 或批量 INSERT 并开启同步提交优化能显著提速:Python 侧可用 psycopg 的 execute_values,或把向量写成文本数组用 COPY;更新向量时按主键 UPSERT。

RAG 与向量库速查AI更新于 2026-10-12

批量 UPSERT(SQL 形态)

批量 UPSERT(SQL 形态)
INSERT INTO kb_chunks (id, doc_id, content, embedding)
VALUES ($1, $2, $3, $4)
ON CONFLICT (id) DO UPDATE
  SET content = EXCLUDED.content,
      embedding = EXCLUDED.embedding;

COPY 导入(文本格式示例)

COPY 导入(文本格式示例)
1	FAQ	这是正文内容	[0.1,0.2,0.3,...]
2	FAQ	另一段正文	[0.3,0.1,0.2,...]
# 向量列用 [] 包裹的浮点数组文本
建索引会拖慢写入:大批量灌库的常规做法是先灌数据、后建 ANN 索引。

易错点

  • 边灌数据边维护 HNSW 索引,写入速度比先灌后建慢很多
  • COPY 文本中向量格式不合法(少括号或空白符),整批失败

数据来源与参考

  • pgvector README(Bulk loading)
  • PostgreSQL 官方文档(COPY / UPSERT)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌