Share
Embed
Transcript
12 slides
-
pgvector vs LanceDB パフォーマンス比較 / Benchmarking Vector Databases: pgvector vs.
LanceDB @PostgreSQLアンカンファレンス #pgunconf tsho / Sho Tanaka -
自己紹介 Name: tsho (Sho Tanaka) Affiliation: Snowflake Role: Lead Developer
Advocate X: tshowis Achievements: Devoxx 2026, OSSummit Tokyo, Seoul etc 専門はML, AIの評価とか Google Developer Expert AI/ML (JAX, TPU etc) 本発表は所属する組織とは関係なく、 個人の見解と調べたことを発表いたします。 -
Tl;dr 状況 既に Postgres があり、 QPS が高い フィルタ + ベクトルの
複合検索が中心 推奨 根拠 pgvector 8 並行で 1.8 倍、ACID・バックアップ・権限 管理が全部ついてくる LanceDB または パフォーマンスチューニン グされたpgvector prefilter が予測可能。 pgvector は ANALYZE / iterative_scan 必須 単発レイテンシ最優先 (エージェントのメモリ等) LanceDB 同 recall で約 2 倍速、in-process でネット ワークなし データが数百万件超・ 運用チームは DBA pgvector Postgres の運用資産(レプリケーション、 監視)をそのまま流用 -
pgvectorとは? PostgreSQL の extension の一つで、 PostgreSQL のまま vector columnを追 加できる。
最新 ver: v0.8.6 スター数:22.9k *9/1現在 GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres -
LanceDBとは? マルチモーダルなどに特化したレイクハウス用のエ ンジンで、AI/ML アプリケーション向けに作られた (と言っても、通常のDBのindex, 検索など幅広く対 応している) コアエンジンはLance formatのrepoで管理されて いる
https://github.com/lancedb/lancedb https://github.com/lance-format/lance -
実験概要: pgvector vs LanceDB COMPARISON TARGETS BENCHMARK SETUP 検証対象のデータベース データ・検証環境
pgvector v0.8.6 🔬 データ規模: 10万件 PostgreSQLの拡張機能。既存 RDB環境にシー ムレスにベクトルカラムを追加可能。 📐 次元数: 1,536次元 LanceDB v0.36.0 AI/MLアプリ向けのサーバーレス /埋め込み型 ベクトルDB。カラムナ形式採用。 DBpeida entitiesの英語のテキスト, tite link 🛠 主要検証項目: ・データ投入&インデックス構築速度 ・単一クエリの Recall-Latency 曲線 ・並行負荷(マルチスレッド)検証 ⚠ 実験の制約事項に関する注意書き 今回のベンチマーク検証は特定のハードウェア・インデックス設定条件下で実施されています。実験の制 約上、リソース割り当てや設定変更が全体のパフォーマンス計測値に影響を与えているため、実稼働環 境での評価時は実機検証を推奨します。 -
結果1:データ投入&インデックス構築速度の比較 LanceDB 優勢 インデックス構築時間の比較 (秒) 構築速度に約 15倍の大差 1.1 秒 (IVF_HNSWを利用。投入は一瞬)
・LanceDBは、データ投入からインデックス(HNSW)作 成完了まで僅か1.1秒。IVF_HNSWを使って、クラスタ ごとにHNSWを構築し、効率的な一括書き込みが強み を発揮。 17.2 秒 (投入 1.4秒 + HNSW構築 15.8秒) ・pgvectorは計17.2秒(投入 1.4秒、HNSW構築 15.8 秒)を要する。RDBの行指向処理とインデックス生成の オーバーヘッドが要因。 LanceDB pgvector -
結果2:単一クエリにおける Recall-Latency 性能比較 LanceDB 優勢 同一Recall基準でLanceDBが約2倍高速 ・検索効率: LanceDBは、高い再現率( Recall 0.95以上)を維持した状態でもレイテンシの増加
が極めて緩やかであり、終始 pgvectorを圧倒。 ・グラフの傾向: LanceDBは、フラットに安定した 超低遅延検索を提供可能。 pgvectorはefの値が 増加するに従い、 latencyが比較的増加傾向。 -
結果3:マルチスレッドにおける QPS・性能比較 Pgvector 優勢 マルチスレッド環境下では pgvectorが優勢 ・pgvectorの強み :PostgreSQL本来の堅牢なマル チプロセス/スレッド管理機構により、複数同時クエリ に対してもリソースを効率配分。並行ロード時でも極
めて安定したスループット( QPS)を維持可能。 ・LanceDBの課題 :サーバーレスの特性上、クライア ント側の並行スレッドが増加すると内部ロック競合や I/Oオーバーヘッドが生じ、単一クエリ時ほどの圧倒 的速度差が縮まる傾向。 -
Tl;dr 状況 既に Postgres があり、 QPS が高い フィルタ + ベクトルの
複合検索が中心 推奨 根拠 pgvector 8 並行で 1.8 倍、ACID・バックアップ・権限 管理が全部ついてくる LanceDB または パフォーマンスチューニン グされたpgvector prefilter が予測可能。 pgvector は ANALYZE / iterative_scan 必須 単発レイテンシ最優先 (エージェントのメモリ等) LanceDB 同 recall で約 2 倍速、in-process でネット ワークなし データが数百万件超・ 運用チームは DBA pgvector Postgres の運用資産(レプリケーション、 監視)をそのまま流用