0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RDBとベクトルDBの違い

Last updated at Posted at 2025-11-16

前回、ベクトル比較について書いた。
学習量が多ければ多いほど、RDBだと全部検索時間かかると思っていた。

そしたらベクトルDBなるものがあった。
のでまとめとく。

1. 役割の違い

  • RDB(MySQL / PostgreSQL)
    → 条件検索・集計・リレーション管理が得意
    → SQL を使って「正確一致」や「範囲検索」を行う
  • ベクトルDB(Qdrant / Pinecone / Chroma)
    → 文書・画像・音声などを「似ている順」に検索するためのDB
    → コサイン類似度などで「類似検索」が高速にできる

2. 保存形式の違い

RDB

  • テーブル
  • 行(row)と列(column)

ベクトルDB

  • コレクション
  • ポイント(vector + payload)

3. データ構造の違い

種類 構造
RDB id / title / body / created_at / ...
ベクトルDB id / vector[1536次元] / payload(json)

ベクトルDBの例

{
  "id": 1,
  "vector": [0.12, -0.55, ...],
  "payload": {
    "text": "返品方法を教えて",
    "category": "返品"
  }
}

4. 検索方法の違い

RDB:

WHERE name = 'A'
WHERE price > 1000

ベクトルDB:

embedding と保存済みベクトルを比較し
「似ている上位5件」のように返す。

5. 速度の違い

RDB

embedding を保存すると
→ 類似度検索は 全件比較(遅い)

ベクトルDB

→ HNSW / IVF / PQ などのインデックスを使い
→ 数百万件でも 10〜30ms で返す

6. ベクトルDBが高速検索できる仕組み(概要)

それぞれがどの用な処理をしているかは省いた。
どんな役割があるかだけ書いた。

HNSW(階層的グラフ)

  • ベクトル同士を「グラフの道」でつないでおく
  • そのグラフを上から順に降りていくことで、
    近い候補だけを見て検索できる
  • 結果 → 数百万件でもミリ秒で検索可能
[ベクトルA]───[ベクトルB]───[ベクトルC]
       \             │              \
        \            │               \
         └────[ベクトルD]──────[ベクトルE]
  • A と B は近い
  • B と C は近い
  • D と E も近い

IVF(クラスタリング)

  • データを「似ているグループ」にあらかじめ分割
  • 検索時は、関係あるクラスタだけ見る
  • 結果 → 不要なデータをほとんど見ないで済む

PQ(圧縮)

  • ベクトルを小さく圧縮して保存
  • 大量データでもメモリに載せやすい
  • 圧縮しても「距離(類似度)」はそこそこ正確に比較できる

■ まとめ

  • HNSW → 近いところから探す
  • IVF → 最初からグループ分けしておく
  • PQ → 圧縮してメモリ効率を上げる

これらにより、ベクトルDBは
全レコードを brute-force しなくても類似検索ができる

キャンプのしおりを学習させて、「消灯時間はいつ?」とか「ごみの捨てる時間は何時?」とかに答えられるボットも作成できそうだな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?