pgvector 本番運用ガイド 2026 — エンタープライズ RAG のスケーリング・監視・コスト最適化 | GH Media
URLがコピーされました

pgvector 本番運用ガイド 2026 — エンタープライズ RAG のスケーリング・監視・コスト最適化

URLがコピーされました
pgvector 本番運用ガイド 2026 — エンタープライズ RAG のスケーリング・監視・コスト最適化

「PoC は Pinecone でやったが、本番は既存 PostgreSQL に統合したい」——RAG が PoC を超えて本番運用に乗りはじめた企業から、こうした相談が急増しています。専用ベクトル DB は確かに高性能ですが、運用 DB が増える、トランザクション境界が分かれる、SLA が二重化する——本番では地味に効いてくる課題があります。

pgvector を使えば、既存 PostgreSQL のなかでベクトル検索を完結できます。本記事は、「pgvector を本番で使うときに何を意思決定するか」を実装担当の目線で整理した運用ガイドです。

pgvector を中核に据えた RAG アーキテクチャ

専用ベクトル DB ではなく pgvector を選ぶ 4 つの理由

1. トランザクション境界が一致する

ドキュメントメタデータと埋め込みベクトルが同じ DB に乗るので、INSERT / UPDATE が 1 トランザクションで完結します。Pinecone を別途持つ場合、整合性を二重管理する必要が出てきます。

2. 既存の権限・監査基盤を流用できる

PostgreSQL RLS で実装する SaaS マルチテナント設計 で書いた RLS が、ベクトル検索にもそのまま適用できます。テナント分離・監査ログ・バックアップを一本化できるのは、エンタープライズ受託で大きな利点です。

3. 運用知識の継承

PostgreSQL の DBA は社内・SES市場とも豊富。「ベクトル DB の運用人材を新規採用」する必要がない、というのは中堅企業にとって極めて重要なファクターです。

4. コスト

100 万ベクトル規模なら、専用ベクトル DB の月額に対して 1/3 〜 1/5 で済むケースが多いです。

インデックス選定 — HNSW か IVFFlat か

pgvector は 2 種類のインデックスをサポートしますが、本番は基本 HNSWを推奨します。

観点HNSWIVFFlat
検索速度高速中速
構築時間遅い(数倍)速い
メモリ消費多い少ない
動的な追加強い(再構築不要)追加時に精度が劣化
推奨用途本番運用大量バッチ・初期構築

HNSW の実用パラメータ

CREATE INDEX ON documents
USING hnsw (embedding vector_cosine_ops)
WITH (m = 16, ef_construction = 64);

-- クエリ時: 精度と速度のトレードオフを ef_search で調整
SET hnsw.ef_search = 80;

m(接続数)と ef_construction(構築時の探索幅)はデフォルトで多くの用途に十分です。クエリ時の ef_search を 40〜200 で振って、想定 QPS とリコール率の最適点を見つけます。

ハイブリッド検索 — 「ベクトルだけ」では実用にならない

ベクトル検索の課題は、固有名詞や品番などの完全一致が弱いことです。本番では BM25(全文検索)とのハイブリッドが必須です。

-- 全文検索 + ベクトル検索を Reciprocal Rank Fusion で統合
WITH bm25 AS (
  SELECT id, ts_rank(tsv, plainto_tsquery('japanese', $1)) AS score
  FROM documents
  WHERE tsv @@ plainto_tsquery('japanese', $1)
  ORDER BY score DESC LIMIT 50
), vec AS (
  SELECT id, 1 - (embedding <=> $2) AS score
  FROM documents
  ORDER BY embedding <=> $2 LIMIT 50
)
SELECT id, SUM(1.0 / (60 + rank)) AS rrf_score
FROM (
  SELECT id, ROW_NUMBER() OVER (ORDER BY score DESC) AS rank FROM bm25
  UNION ALL
  SELECT id, ROW_NUMBER() OVER (ORDER BY score DESC) AS rank FROM vec
) merged
GROUP BY id
ORDER BY rrf_score DESC LIMIT 10;

このパターンは マルチモーダル埋め込み + リランカーの企業 RAG ガイド で取り上げたリランカーと組み合わせると、より高精度になります。

スケーリング — どの段階で何が壊れるか

実装担当の観点で、規模ごとに「次に当たる壁」を一覧化します。

規模対応
〜 10 万件特になし単一インスタンスで OK
10〜100 万件HNSW のメモリshared_buffers を実メモリ 25%、maintenance_work_mem を増強
100〜1000 万件INSERT 時の HNSW 更新コストバッチ INSERT + CONCURRENTLY でのインデックス再構築
1000 万件超単一ノードの限界パーティショニング or Citus / pgvecto.rs を検討

特に「HNSW のメモリが乗り切らない」は気付きにくく、SET 文での work_mem 調整やインデックスのページキャッシュ滞在時間を監視する必要があります。

監視 — 必ず取りたい 5 メトリクス

  1. クエリ平均レイテンシ(P50 / P95) — pg_stat_statements で取得
  2. インデックスのヒット率 — pg_statio_user_indexes
  3. ベクトル検索の Recall@K — オフライン評価セットを CI で回す
  4. コネクション数 / 待機数 — PgBouncer or Hyperdrive 経由なら必須
  5. 埋め込み生成 API の費用 — OpenAI / Voyage / Gemini Embedding の月額

監視の SaaS 連携は OpenTelemetry 移行ガイド のパターンがそのまま流用できます。

コスト試算 — Pinecone との 100 万ベクトル比較

コスト要素Pinecone(Standard)pgvector(RDS db.r6g.xlarge)
月額 DB約 $70〜約 $230
既存 DB に同居なら?別契約必須追加 0 円
運用人月専門知識必要既存 DBA で対応可
100 万件規模の TCO 目安$80〜 / 月既存 DB 同居で $0 〜 数十ドル

専用ベクトル DB の優位性は 1 億件超 × グローバル分散 の超大規模ワークロードに集約されつつあります。

まとめ — 「DB を増やさない」が運用 PoC を超えた答え

pgvector の魅力は、ベクトル検索を「特殊技術」から「PostgreSQL の機能の一つ」に降格させる点にあります。RAG が PoC を超えて本番に乗ると、運用の単純さが性能の伸びしろを上回るのが常です。

GleamHub では、Pinecone / Qdrant からの pgvector 移行 PoC、ハイブリッド検索の実装、監視基盤の整備までを伴走しています。「RAG を本番に乗せたい」「ベクトル DB の運用負荷を下げたい」といったご相談は、ぜひ お問い合わせ からお気軽にどうぞ。

URLがコピーされました

グリームハブ株式会社は、変化の激しい時代において、アイデアを形にし、人がもっと自由に、もっと創造的に生きられる世界を目指しています。

記事を書いた人

鈴木 翔

鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

関連記事