このドキュメントでは、OceanBaseデータベースの密ベクトルインデックスの概念とタイプについて説明します。以下、密ベクトルインデックスを単に「インデックス」と呼びます。
インデックスは、OceanBaseデータベースが密ベクトルデータ(大部分の要素がゼロ以外の値を持つベクトル)に対して提供する効率的なインデックスタイプです。インデックスは主にベクトル検索の高速化に使用され、距離関数(L2、内積、コサイン距離)を用いた最近傍探索をサポートします。
インデックスタイプ
OceanBaseデータベースのインデックスは、主にHNSWシリーズとIVFシリーズがあります。
HNSWシリーズ
メモリベースのグラフ構造インデックスで、メモリに完全にロードする必要があります。DMLとリアルタイム検索をサポートし、高い検索性能と再現率を備えています。
インデックスタイプ |
説明 |
|---|---|
| HNSW | インデックス列の最大次元は4096です。HNSWインデックスはメモリ内インデックスであり、メモリに完全にロードする必要があります。 |
| HNSW_SQ | HNSW_SQインデックスは、HNSWインデックスと同等の構築速度、検索性能、再現率を提供しますが、総メモリ使用量は約半分から3分の1に削減されます。 |
| HNSW_BQ | HNSW_BQインデックスの再現率はHNSWインデックスよりわずかに低いものの、メモリ使用量は大幅に削減されます。BQ量化圧縮アルゴリズム(Rabbitq)により、ベクトルは元のサイズの1/32まで圧縮できます。ベクトルの次元が高くなるほど、HNSW_BQインデックスのメモリ最適化効果はより顕著になります。 |
詳細については、本文末の関連ドキュメントを参照してください。
IVFシリーズ
ディスクベースのインデックスで、常駐メモリを消費しないため、データ量が多くコストを重視するシナリオに適しています。
インデックスタイプ |
説明 |
|---|---|
| IVF | データベーステーブルに基づいて実装されたIVFインデックスで、常駐メモリを消費しません。 |
| IVF_PQ | データベーステーブルに基づいて実装されたIVF_PQインデックスで、常駐メモリを消費しません。IVFを基盤としつつPQ量化技術を適用しており、インデックスの再現率はIVFインデックスより若干低くなりますが、パフォーマンスはIVFインデックスより高くなります。また、PQ量化圧縮アルゴリズムは一般的なシナリオにおいてベクトルを元のサイズの1/16~1/32に圧縮できます。 |
詳細については、本文末の関連ドキュメントを参照してください。
構文の説明
インデックスは、テーブル作成時の作成と後からの作成の2種類の方法で作成できます。検索構文と削除構文は通常のベクトルインデックスと同じです。異なるインデックスタイプの作成構文、パラメータの説明、検索構文、および例については、以下を参照してください:
- HNSWシリーズインデックス:HNSW、HNSW_SQ、HNSW_BQの作成、検索、削除の構文説明と例を含みます。
- IVFシリーズインデックス:IVF、IVF_PQの作成、検索、削除の構文説明と例を含みます。
関連ドキュメント
- インデックスの選択に関する推奨事項については、インデックスタイプの選択を参照してください。
- ベクトルインデックスのメモリ管理
- ベクトルインデックスの監視とメンテナンス