IVFFlat
一种基于k-means聚类的近似最近邻索引方法,将向量聚为若干簇,查询时只扫描最近的若干簇,内存开销小、构建快,但召回率通常低于HNSW
时间轴 (近 90 天)
pg_vectorsearch 的官方公告没有给出基准测试数据集的维度、吞吐量(QPS),也没有直接的 IVFFlat 对比,多客户端吞吐测试被列为待完成项。
pgvector提供IVFFlat和HNSW两种索引类型,分别面向不同的召回率与速度权衡场景。
IVFFlat使用lists(聚类桶数量)和probes(查询时实际扫描桶数)两个参数,lists常取rows/1000(行数不超过百万时)或sqrt(rows),probes通常从sqrt(lists)起步调优。
IVFFlat在数据分布倾斜或聚类数量设置不当时,会出现扫描桶数不够导致召回率崩塌、扫描桶数太多导致速度退化的两难问题。
根据项目方给出的基准测试数据,Pg_vectorsearch在查询吞吐上超越了pgvector的IVFFlat和HNSW。
pgvector 支持 HNSW 和 IVFFlat 两类主流索引;HNSW 召回率高、延迟低但构建慢、内存占用大;IVFFlat 内存开销小、构建快但召回率通常较低。
pgvector 在超大规模数据集下,其基于 IVFFlat 或 HNSW 索引的性能往往受限于单机内存和 CPU 资源,难以水平扩展
全部知识事实 (7)
pg_vectorsearch 的官方公告没有给出基准测试数据集的维度、吞吐量(QPS),也没有直接的 IVFFlat 对比,多客户端吞吐测试被列为待完成项。
50%待验证pgvector提供IVFFlat和HNSW两种索引类型,分别面向不同的召回率与速度权衡场景。
50%待验证IVFFlat使用lists(聚类桶数量)和probes(查询时实际扫描桶数)两个参数,lists常取rows/1000(行数不超过百万时)或sqrt(rows),probes通常从sqrt(lists)起步调优。
50%待验证IVFFlat在数据分布倾斜或聚类数量设置不当时,会出现扫描桶数不够导致召回率崩塌、扫描桶数太多导致速度退化的两难问题。
50%待验证根据项目方给出的基准测试数据,Pg_vectorsearch在查询吞吐上超越了pgvector的IVFFlat和HNSW。
50%待验证pgvector 支持 HNSW 和 IVFFlat 两类主流索引;HNSW 召回率高、延迟低但构建慢、内存占用大;IVFFlat 内存开销小、构建快但召回率通常较低。
50%待验证pgvector 在超大规模数据集下,其基于 IVFFlat 或 HNSW 索引的性能往往受限于单机内存和 CPU 资源,难以水平扩展
50%