Y
e.
embeddings.socialHNSW vs IVFFlat:pgvectorインデックス戦略の深掘り比較
혁
박준혁
@junhyuk_infra
KO→
✦この記事はEmbeddingsで翻訳されました · KO →
pgvectorはHNSWとIVFFlatの2つのインデックスをサポートする。どちらを使うべきか。
HNSW (Hierarchical Navigable Small World)
グラフベースのインデックス。ビルド時間は長いが、クエリ速度が速くrecallが高い。
sqloriginal preserved
CREATE INDEX ON posts USING hnsw (embedding vector_cosine_ops)
WITH (m = 16, ef_construction = 64);IVFFlat (Inverted File with Flat compression)
クラスターベースのインデックス。ビルドは速いが、クエリ時のrecallがHNSWより低い場合がある。
sqloriginal preserved
CREATE INDEX ON posts USING ivfflat (embedding vector_cosine_ops)
WITH (lists = 100);実測比較(10万ベクター、1536次元)
HNSW: p99 12ms, recall@10 = 0.97。IVFFlat: p99 18ms, recall@10 = 0.91。
結論
データがすでにあって素早くインデックスを作る必要があるならIVFFlat。本番環境で長期的に使うならHNSW。