Postgres向量扩展pgvector索引体积估算器
输入向量维度和行数,选择HNSW或IVFFlat索引类型,按pgvector近似存储模型估算索引磁盘占用,用于容量规划参考。
免费在线工具
Loading…
使用说明
选择索引类型(HNSW或IVFFlat),填写向量维度和行数。HNSW额外可设置m参数(每层最大连接数,默认16);IVFFlat额外可设置lists聚类中心数(留空则按行数/1000自动估算)。
结果区实时展示总体积(自动换算B/KB/MB/GB)及三项拆分:向量原始数据体积、索引结构体积(HNSW图连接或IVFFlat聚类中心)、每行固定开销。
点击「加载示例数据」体验一组100万行、1536维(OpenAI embedding常见维度)的HNSW索引估算。
功能介绍
估算公式(近似模型,参考pgvector官方文档给出的存储结构):
- 向量原始数据体积 = 行数 × 维度 × 4字节(float4存储)
- HNSW结构体积 ≈ 行数 × m × 2 × 8字节(近似双向连接开销)
- IVFFlat结构体积 = 聚类中心数(lists) × 维度 × 4字节
- 每行固定开销:HNSW约64字节/行,IVFFlat约40字节/行(近似堆元组开销)
这是理论估算值,实际磁盘占用会受PostgreSQL页对齐、WAL写入、MVCC版本膨胀、索引重建碎片等因素影响,仅供容量规划参考,不能替代实际压测。
使用场景
向量数据库容量规划
在把百万级Embedding数据从内存索引迁移到Postgres+pgvector之前,先估算索引体积,评估云数据库需要采购的磁盘规格。
对比HNSW与IVFFlat的存储成本
针对同一批向量数据分别按HNSW和IVFFlat计算索引体积,结合查询性能测试结果,综合决定生产环境采用哪种索引类型。
常见问题
这个估算值准确吗?
这是基于pgvector官方文档给出的近似存储结构公式计算的理论值,实际磁盘占用还会受PostgreSQL页对齐、WAL、MVCC版本膨胀等因素影响,通常会比理论值略大,建议在小规模数据上先实测再按比例外推。
HNSW和IVFFlat该怎么选?
这不是本工具的判断范围,通常HNSW查询召回率更高但索引构建更慢、占用稍大;IVFFlat构建更快、占用相对更小但需要先训练聚类中心,且查询精度对lists参数比较敏感,具体选择需结合你的查询延迟和召回率要求。
HNSW的m参数越大越好吗?
不是,m越大索引召回率通常越高,但索引体积和构建时间也会随之增大(本工具的结构体积与m近似线性相关),需要在召回率和存储成本之间权衡,pgvector文档给出的默认值是16。