3行でいうと
- 6つは、既存DBの拡張、管理サービス、オープンソース兼クラウドの3種類に分けられます。
- pgvectorは既定で総当たり検索。近似索引(HNSW)の次元数の上限は、vectorで2,000、halfvecで4,000です。
- 料金は課金の単位がまったく違い、同じ土俵では比べられません。
- 速度や精度の順位は、各社の公式文書からは比べられません。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書を読んでまとめたものです。料金は2026年10月22日に確認しました。変わることがあります。
先に結論
- 文章の件数が数万〜数十万件で、すでにPostgreSQLを使っているなら、まずpgvector(Postgresにベクトル検索を足す拡張)を検討する価値があります。ベクトルを他のデータと同じ表に置け、トランザクションやバックアップも既存の仕組みで済みます(pgvectorの文書にそう書かれています)。
- 手元の1ファイルで完結させたいなら、sqlite-vec(SQLiteの拡張)です。ただし公式が「v1前で、互換性のない変更がありうる」と書いています。
- 運用の手間を減らしたい、または件数が増えそうなら、管理サービスのPinecone、またはQdrant・Weaviate・Chromaの各クラウドです。
- 見立てです。選ぶ前に、「件数」「次元数」「フィルタ条件の使い方」「運用する人」の4つを書き出すと、候補が2つくらいに絞れると思います。
前提:ベクトルデータベースとは
埋め込み(文章を意味の近さが測れる数字の並びに変えたもの)を保存し、質問に近いものを探すためのデータベースです。AIが資料を探してから答える方式(RAG)の「探す部分」に使います。次元数と最大入力の違いは、このシリーズの「埋め込みモデルの選び方」を見てください。
用語を先に整理します。
- 総当たり検索(exact)は、全件と距離を計算する方法です。結果は正確ですが、件数が増えると遅くなります。
- 近似最近傍探索(ANN)は、すべてを調べず、近そうなものだけを調べる方法です。速いが、本来の1位を取りこぼすことがあります。
- HNSWは、近似検索の代表的な索引(さがすための目次)で、多層の「近いもの同士のつながり」を辿ります。pgvectorの文書は、IVFFlatという別の方式よりも速度と取りこぼしの兼ね合いがよい一方、構築が遅くメモリを多く使う、と説明しています。
- メタデータフィルタは、「2025年以降」「部署が営業」のような、数字以外の条件による絞り込みです。
- 量子化は、1つの数字を小さいサイズに丸めて、保存量を減らす方法です。
6つの比較表
| 名前 | 型 | 動かし方(公式の説明) | 料金の単位 |
|---|---|---|---|
| pgvector | Postgresの拡張 | 自分で入れる。Postgres 13以降対応。多くの管理サービスにも入っている | 拡張自体は無料(オープンソース)。Postgresの運用費が別 |
| sqlite-vec | SQLiteの拡張 | C言語で書かれ、依存なし。SQLiteが動く場所なら動く(ブラウザのWASMも) | 無料(オープンソース) |
| Pinecone | 管理サービス | クラウドで運営される。プランはStarter、Builder、Standard、Enterprise | 保存量と、読み書きの量(ユニット) |
| Qdrant | 専用DB | オープンソース、管理クラウド、ハイブリッド、プライベートの4形態 | クラウドは計算資源の使用量(時間課金) |
| Weaviate | 専用DB | オープンソース。クラウドはFree、Flex、Premium | クラウドはベクトルの総次元数と保存量 |
| Chroma | 専用DB(組み込みもできる) | Apache 2.0。ローカル(メモリ、ファイル)、自前のサーバー、Chroma Cloud | クラウドは書込量・保存量・検索量・転送量 |
pgvector
公式のREADME(v0.8.7)に書かれていることです。
- 完全一致と近似の両方の検索に対応します。既定は完全一致で、perfect recall(取りこぼしなし)と説明されています。
- 数字の型は、単精度(vector)、半精度(halfvec)、2進(bit)、疎ベクトル(sparsevec)の4つです。
- 近似索引に載せられる次元数の上限は、vectorが2,000、halfvecが4,000、bitが64,000です。2,000より大きい次元のモデルを使うときは、半精度か2進量子化か次元削減を使う、と文書にあります。
- 近似索引を使った検索では、絞り込みが索引を読んだ後に行われます。READMEの例では、条件に合う行が全体の10%で、HNSWの既定(ef_searchが40)だと、平均で4件しか残りません。0.8.0以降は、足りなければ索引をさらに読み進める「反復索引スキャン」(iterative index scans)があります。
- ACID(途中で止まっても壊れない性質)、時点復元、JOINなど、Postgresの機能がそのまま使えます。
sqlite-vec
- READMEに「pre-v1」「破壊的な変更を想定してください」と書かれています。ドキュメントサイトには
v0.1.10-alpha.4の表示があり、PyPI(Pythonの配布所)の最新の通常版は0.1.9(2026年3月31日公開)でした。PyPIには、サイトの表示と同じ0.1.10系のアルファ版(0.1.10a4、2026年5月18日公開)も並んでいました。 - float、int8、2進のベクトルを、
vec0という仮想テーブルに置けます。 - 通常の表に置いたベクトルは、距離を計算する関数で「総当たりのKNN(近い順にk件)」を行う例が公式文書にあります。
vec0の内部で近似索引を使うかどうかは、今回読んだページでは確認できていません。
Pinecone
- 公式文書は、全文検索、意味検索、疎ベクトル検索、ハイブリッド検索を1つの索引で扱えると説明しています。テナント分けは「名前空間(namespace)」で行います。
- 料金ページ(2026年10月22日確認)の主な数字です。
| プラン | 月額 | 保存量 | 書込ユニット | 読取ユニット |
|---|---|---|---|---|
| Starter | 0ドル | 2GBまで | 月200万まで | 月100万まで |
| Builder | 20ドル(定額) | 10GBまで | 月500万まで | 月200万まで |
| Standard | 最低50ドル | 1GBあたり月0.33ドル | 100万あたり4〜4.50ドル | 100万あたり16〜18ドル |
| Enterprise | 最低500ドル | 1GBあたり月0.33ドル | 100万あたり6〜6.75ドル | 100万あたり24〜27ドル |
月額の0、20、50、500ドルは、料金ページと料金の解説ページの2か所で一致しました。ユニットの単価(4〜4.50ドルなど)は、クラウドとリージョンで変わり、料金ページの1か所の確認です。Starterは地域(リージョン)がus-east-1のみと書かれています。
Qdrant
- 公式の概要ページに、オープンソース、管理クラウド(Managed)、ハイブリッド、プライベートの4つの置き方が載っています。同じ表で、高可用性(止まりにくさ)などは、オープンソースの欄が×、他の3つが○でした。
- 既定では、ベクトルはメモリ(RAM)に置かれます。件数が増えるとディスクに逃がす設定ができます。
- フィルタ用の索引(payload index)を作ると、HNSWの探索の中で条件を適用できる、と書かれています。絞り込みの後で結果が減る問題を避ける仕組みです。
- 量子化は、スカラー量子化(4分の1)、2進量子化(最大32分の1)、直積量子化(最大64分の1)などがあります。
- 無料枠は、0.5 vCPU・1GB RAM・4GBディスクの1ノードで、高可用性なし。クラウドの課金は、計算・メモリ・保存の使用量による時間課金です。
Weaviate
- 公式文書は、オープンソースのAI向けベクトルデータベースと説明しています。クラウドの料金ページ(2026年10月22日確認)では、無料プランは10万オブジェクト、メモリ1GB、ディスク10GB、1コレクション(テナント3つまで)です。
- Flexは月45ドルから。ベクトルの総次元数(100万次元あたり0.00465ドルから)と、保存量(1GiBあたり0.12ドルから)で課金され、圧縮の方式やリージョンで単価が変わると書かれています。次元数の単価の期間は、読んだページでは明記を確認できていません。
Chroma
- ライセンスはApache 2.0。ローカルで動かす、自前のサーバーで動かす、Chroma Cloudを使う、の3つが公式の案内です。ローカルには、メモリ上のクライアントと、ファイルに保存するクライアントがあります。
- Chroma Cloudの料金ページでは、Starterが月0ドル+使った分(毎月5ドル分の無料クレジット)、Teamが月250ドル+使った分(100ドル分のクレジット)です。使った分の単価は、書込1GiBあたり2.50ドル、保存1GiBあたり月0.33ドル、検索1TiBあたり0.0075ドル、転送1GiBあたり0.09ドルでした。
保存量の見積もり(僕らの計算です)
僕らの計算です。100万件、1024次元の場合の、ベクトルだけの保存量です(索引や元の文章は含みません)。
| 型 | 1つあたり | 100万件 |
|---|---|---|
| 単精度(4バイト) | 4,096バイト | 約4.1GB |
| 半精度(2バイト) | 2,048バイト | 約2.0GB |
| 1ビット | 128バイト | 約128MB |
近似索引(HNSWなど)は、これとは別にメモリやディスクを使います。この倍率は、公式文書では確認できていません。したがって、実際の使用量は、自分のデータで測る必要があります。
選び方の目安(見立てです)
見立てです。上の事実から、次のように考えます。
| 状況 | 候補 | 理由 |
|---|---|---|
| すでにPostgres。数万〜数十万件。フィルタが多い | pgvector | 同じ表にメタデータを持てる。JOIN、バックアップがそのまま使える |
| 個人の手元、1ファイルで完結、配布もしたい | sqlite-vec、Chromaのローカル | サーバー不要。ただしsqlite-vecはv1前 |
| 運用の手を増やしたくない。件数が読めない | Pinecone、各社のクラウド | 運用を任せられる。課金の単位は各社で違う |
| データを自社の外に出せない | pgvector、Qdrant(自前)、Weaviate(自前)、Chroma(自前) | 自分の環境で動かせるものが公式に挙がっている |
| 絞り込み条件が多く、結果が少なくなりがち | Qdrant、pgvector(反復索引) | フィルタを探索に組み込む、または反復して補う仕組みが文書にある |
注意点として、課金の単位が全部違います。Pineconeは読み書きのユニット、Weaviateは次元数、Qdrantは計算資源、Chromaは書込・保存・検索量です。同じ100万件でも、検索の回数や更新の頻度で、どれが安くなるかが変わります。この記事では、同じ条件での月額の比較は計算していません。公式の料金計算機(Pinecone、Weaviateなどが提供)で、自分の条件を入れて試してください。
よくあるつまずき
- 次元数が索引の上限を超える。 pgvectorで3072次元のモデルを使うと、vectorのままでは近似索引を作れません。半精度への変換などが必要です。
- フィルタ付きの検索で、件数が足りなくなる。 pgvectorは近似索引を読んだ後で絞り込むため、条件がきついと結果が減ります。反復索引スキャンを使うか、条件の列に索引を作ります。
- モデルを変えたのに、古いベクトルが残る。 距離が意味を持たなくなります。モデル名を一緒に記録し、作り直す前提で設計してください。
- 試作用の設定のまま本番に出す。 見立てです。Chromaの文書には、メモリ上で動かすクライアントと、ファイルに保存するクライアントの両方が載っています。メモリ上のものは、名前のとおりなら、プロセスを閉じると中身が残らないはずです(この記事では確かめていません)。どちらを使っているかを、本番に出す前に確認してください。
- 無料枠の制約を忘れる。 QdrantとChromaの無料枠は、高可用性なし、容量小、などの条件があります。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。速度、精度、運用の手間は、この記事の範囲外です。
- 料金は2026年10月22日の確認で、変わることがあります。Pineconeのユニット単価とBuilderの上限は、料金ページのMarkdown版(pricing.md)の1か所のみの確認です。Weaviateの単価は「から」の下限値で、実際の請求とは違う場合があります。
- QdrantのHA(高可用性)の欄は、公式の比較表から読んだものです。表の読み違いの可能性があるので、導入前に最新の文書を見てください。
- sqlite-vecは開発中で、バージョンの表示がサイトとPyPIで違いました(サイトはアルファ版0.1.10-alpha.4、PyPIの最新の通常版は0.1.9で、アルファ版0.1.10a4は別に並んでいます)。
- 他にも有名な選択肢(OpenSearch、Elasticsearch、Milvusなど)はありますが、今回は読んでいません。表の6つが「主要」という意味ではありません。
- 個別の契約や、個人情報の扱い(保存場所、暗号化)は、この記事では読んでいません。
出典
- pgvector README(GitHub、pgvector、2026年10月22日確認)
- sqlite-vec README(GitHub、Alex Garcia、2026年10月22日確認)
- sqlite-vec ドキュメント(Alex Garcia、2026年10月22日確認)
- sqlite-vec KNN queries(Alex Garcia、2026年10月22日確認)
- sqlite-vec(PyPI、2026年10月22日確認)
- Pinecone Database(Pinecone Docs、2026年10月22日確認)
- Pricing(Pinecone、2026年10月22日確認)
- Understanding cost(Pinecone Docs、2026年10月22日確認)
- Qdrant Overview(Qdrant Documentation、2026年10月22日確認)
- Quantization(Qdrant Documentation、2026年10月22日確認)
- Pricing(Qdrant、2026年10月22日確認)
- Weaviate Documentation(Weaviate、2026年10月22日確認)
- Pricing(Weaviate、2026年10月22日確認)
- Introduction(Chroma Docs、Chroma、2026年10月22日確認)
- Chroma Clients(Chroma Docs、Chroma、2026年10月22日確認)
- Pricing(Chroma、2026年10月22日確認)
更新履歴
- 2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
