Happy Web Engineer
Last updated on

【2026年版】ベクトルDB入門|Chroma/Pinecone/pgvector徹底比較&実装ガイド


はじめに:AI時代のインフラ「ベクトルDB」とは

生成AI、RAG(検索拡張生成)、推薦システムなどで必須のインフラが ベクトルDB(Vector Database)です。従来の関係型DBとは異なり、テキストや画像を数値ベクトルで保存し、意味的な類似度で検索できる新しいデータベースです。

この記事では、ベクトルDBの基礎から、主要3製品(Chroma・Pinecone・pgvector)の徹底比較、Python実装例まで解説します。

  • ベクトルDBの仕組みと用途
  • Chroma / Pinecone / pgvector の比較
  • Python実装例
  • 選定ガイド(用途別)
  • 2026年の最新トレンド

ベクトルDBとは? 従来DBとの違い

基本の仕組み

ベクトルDBは「数値ベクトル」を保存・検索するDB。テキスト・画像・音声などを事前に Embedding モデルでベクトル化(例: 1,536次元の数値配列)してから保存します。検索時は コサイン類似度や内積で「意味が近い」ベクトルを高速に取り出せます。

従来DBとの違い

観点

従来DB(MySQL/PostgreSQL)

ベクトルDB

検索方法

完全一致・LIKE

意味的類似度

データ形式

文字列・数値・日付

高次元ベクトル(300〜4,000次元)

強み

構造化データ

非構造化データ(文書・画像)

用途

商取引・業務システム

RAG・レコメンド・類似画像検索

主な用途

  • RAG実装:ドキュメント検索(社内Q&A・顧客サポート)
  • レコメンドシステム:類似商品・類似記事提案
  • 類似画像検索:ECサイトの画像検索・著作権侵害検出
  • セマンティック検索:キーワード一致ではない意味検索
  • 異常検知:正常パターンからの逸脱検知

Chroma - 個人開発者の味方

特徴

  • 開発元:Chroma(オープンソース)
  • 料金:完全無料(セルフホスト)
  • ベース:SQLite / DuckDB / ClickHouse(選択可)
  • 対応言語:Python / JavaScript

強み

  • セットアップ最速:pip install chromadbのみで動く
  • 永続化はSQLiteのファイル1つ(扱いやすい)
  • LangChain / LlamaIndex と標準統合
  • 小〜中規模データ(数百万ベクトルまで)で十分な性能
  • 学習コスト最小

弱み

  • 大規模(1,000万件超)には不向き
  • 分散処理・HAには別途クラウド版が必要
  • 監査ログ・RBAC等の企業要件は弱い

実装例

pip install chromadb langchain-openai
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
texts = [
    "有給休暇は入社6ヶ月後から10日付与されます。",
    "リモートワークは週3日まで可能です。",
    "健康保険は入社当日から適用されます。",
]
db = Chroma.from_texts(
    texts, embeddings, persist_directory="./chroma_db"
)

results = db.similarity_search("休みは何日もらえる?", k=2)
for r in results:
    print(r.page_content)

👉 個人・PoC・中小規模プロジェクトに最適。


Pinecone - 本番運用の定番クラウドサービス

特徴

  • 開発元:Pinecone Systems(2019年設立)
  • 料金:Starter無料(5GB)・Standard $70/月〜
  • フルマネージド(サーバーレス)
  • 対応言語:Python / Node.js / Java / Go / REST

強み

  • フルマネージドでスケール自動
  • 低レイテンシ(50ms以下)で億単位ベクトル検索
  • SaaS型で運用負担ゼロ
  • Hybrid Search(ベクトル + キーワード)標準
  • Metadata filterで高度な絞り込み
  • 無料枠(100万ベクトル)あり

弱み

  • 有料プランは月$70〜で小規模では高い
  • データが外部サービスに保存(エンタープライズ要件注意)
  • ベンダーロック気味

実装例

pip install pinecone-client langchain-pinecone langchain-openai
from pinecone import Pinecone, ServerlessSpec
from langchain_pinecone import PineconeVectorStore
from langchain_openai import OpenAIEmbeddings
import os

pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])

# Index作成(初回のみ)
if "docs" not in pc.list_indexes().names():
    pc.create_index(
        name="docs",
        dimension=1536,
        metric="cosine",
        spec=ServerlessSpec(cloud="aws", region="us-east-1"),
    )

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vectorstore = PineconeVectorStore(
    index_name="docs", embedding=embeddings
)
vectorstore.add_texts(["有給休暇は10日間付与されます。"])
results = vectorstore.similarity_search("休みは何日?", k=3)

👉 本番運用・大規模データ・運用負荷ゼロが欲しい企業に最適。


pgvector - 既存PostgreSQL拡張

特徴

  • 開発元:オープンソース(ANKANE/pgvector)
  • 料金:PostgreSQL本体のライセンス費用のみ(無料)
  • 既存PostgreSQLに CREATE EXTENSION vector;で追加
  • 対応SQL構文で検索

強み

  • 既存PostgreSQLインフラをそのまま使える
  • RDBと一体管理(トランザクション・JOIN等が使える)
  • Supabase / Neon / AWS RDSで標準サポート
  • SQLで検索可能(SQLエンジニアの学習コスト最小)
  • HNSW / IVFFlat インデックス対応で高速

弱み

  • 専門ベクトルDB(Pinecone等)より一般にやや遅い
  • 超大規模(億単位)では別DB検討
  • PostgreSQL本体の運用知識が必要

実装例(SQL)

-- PostgreSQL でベクトル拡張を有効化
CREATE EXTENSION IF NOT EXISTS vector;

-- テーブル作成
CREATE TABLE documents (
  id SERIAL PRIMARY KEY,
  content TEXT,
  embedding vector(1536)  -- OpenAI text-embedding-3-small
);

-- インデックス作成(HNSW・高速)
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);

-- データ挿入(埋め込みはアプリ側で計算)
INSERT INTO documents (content, embedding)
VALUES ('有給は10日付与されます', '[0.1, 0.2, ...]');

-- 類似検索
SELECT content
FROM documents
ORDER BY embedding <=> '[0.1, 0.2, ...]'  -- クエリの埋め込み
LIMIT 5;

👉 既存PostgreSQL環境・トランザクション連携・SQLで統一したい企業に最適。


3製品 徹底比較表

観点

Chroma

Pinecone

pgvector

セットアップ

◎(1分)

○(API登録)

○(PostgreSQL拡張)

月額(個人)

無料

無料(5GBまで)

無料(RDSなら従量)

月額(100万ベクトル)

無料

無料〜$70

RDS db.t3.medium$30

月額(1億ベクトル)

非推奨

$500〜

RDS db.r6g.xlarge$300〜

検索速度(1Mベクトル)

50ms

20ms

30ms

検索速度(100Mベクトル)

非推奨

50ms

100ms〜

HA/スケール

×

◎自動

○(RDS Multi-AZ)

LangChain統合

◎

◎

◎

RDBとの統合

×

×

◎(JOIN可)

Hybrid Search

手動

標準

手動

データ主権(オンプレ)

◎

×

◎


用途別の選び方

  • 個人開発・PoC → Chroma(無料・最速セットアップ)
  • 本番運用・運用負荷ゼロが欲しい → Pinecone(フルマネージド)
  • 既存PostgreSQLがある・RDB統合したい → pgvector
  • オンプレ・社内管理必須 → Chroma(セルフホスト)or pgvector
  • 億単位の大規模データ → Pinecone(スケール自動)or Qdrant/Weaviate(他選択肢)

その他の選択肢

  • Qdrant:Rust製で高速・オープンソース・クラウド版あり
  • Weaviate:機能豊富・GraphQL API・オンプレ可
  • Milvus:大規模特化・NVIDIA GPU活用
  • Supabase Vector:pgvectorのSaaS版(開発体験が良い)
  • Elasticsearch(dense vector):既存Elasticsearchがあるなら
  • Redis(RediSearch):高速キャッシュと兼用

2026年のトレンド

Hybrid Search 標準化

ベクトル検索単体では精度に限界があり、BM25等のキーワード検索と組み合わせるのが主流。Pineconeは標準対応、他のDBも plugin で対応。

Reranking の普及

Retrieverで上位20件を取得 → Cohere Rerank API等で再ランキング → 上位5件をLLMに渡す、の2段階構成が標準に。

Sparse Embedding の活用

SPLADE等のSparse Embeddingと Dense Embedding の併用で精度向上。Pineconeがいち早く対応。

マネージドpgvector の台頭

Supabase・Neon・AWS Aurora等が pgvector を標準装備。「とりあえずPostgreSQL + pgvectorから始める」が最も合理的な選択肢に。


よくある質問(FAQ)

Q. どれから始めるべき?

個人・PoCなら Chroma一択。本番運用を見据えるなら Supabase + pgvectorがSaaSの手軽さと長期性のバランス◎。

Q. 月額どのくらいかかる?

Chromaなら完全無料(APIコスト別途)。Pineconeは100万ベクトルまで無料、本番運用で$70〜。pgvectorはPostgreSQLのサーバー費用($10〜$100)に相乗り。

Q. 1億ベクトルは扱える?

可能ですが、ChromaはNG(非推奨)。Pinecone / Milvus / Qdrant Cloud が本命。pgvector は分散しないため、1台で頑張るなら数千万程度までが限度。

Q. 埋め込みモデルは何を使う?

OpenAI text-embedding-3-smallが性能・コスト・多言語対応のバランス最強。日本語特化なら multilingual-e5-large(無料・ローカル実行可)がおすすめ。

Q. ドキュメントが更新されたらどうする?

対応チャンクを削除→再埋め込み→再登録のサイクル。Webhookで更新検知+差分同期を実装するのが本番運用の鉄則。


まとめ:個人はChroma、本番はPineconeかpgvector

  • 学習・PoC → Chroma(無料・最速)
  • 本番SaaS型 → Pinecone(スケール自動)
  • 本番RDB統合型 → Supabase + pgvector(統合しやすい)

ベクトルDBは、2026年の生成AI時代に必須のインフラです。今日から試して自分の肌に合う1つを見つけましょう。


関連記事

👉 【2026年版】エンジニアのためのRAG実装入門
👉 【2026年版】Vercel AI SDK vs LangChain 徹底比較
👉 【2026年版】Claude APIでSlack社内Botを作る完全ガイド
👉 個人開発・副業に最適なサーバー完全ガイド
👉 【2026年版】Web APIとAPIキー・OAuth・REST/GraphQL 完全ガイド