PgDog:用于分片pgvector的开源项目
2025-03-26
当pgvector数据库规模达到百万级向量数组时,索引构建速度会急剧下降。本文介绍了PgDog,一个用于分片pgvector向量索引的开源项目。PgDog利用IVFFlat算法的特性,将向量空间分割成多个部分,并将其分布到不同的机器上。通过计算查询向量与质心的距离,选择合适的shard进行搜索,从而提高搜索速度和召回率。文章详细介绍了实现过程,包括使用scikit-learn计算质心、自定义分片函数以及利用pg_query解析SQL语句等。实验结果表明,PgDog能够有效提高pgvector的性能,并提供多种优化策略,例如并行跨分片查询和改进的质心分配策略。
开发