【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-openaifrom 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-openaifrom 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 完全ガイド