すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ベクトルストレージ

最終更新日:Jun 16, 2026

RDS for MySQL は、深く統合されたエンタープライズグレードのベクトルデータ処理を提供します。最大 16,383 次元のベクトルデータのストレージと計算をネイティブにサポートし、主流のベクトル関数を統合し、高度に最適化された階層的ナビゲーブルスモールワールド (HNSW) アルゴリズムを使用して効率的な最近傍検索機能を提供します。ベクトル列にインデックスを作成できます。

機能

RDS for MySQL は、ベクトルストレージ、類似度計算、高性能なインデックス作成を含むベクトルデータ処理をネイティブにサポートしています。大規模なセマンティック検索、インテリジェントレコメンデーション、マルチモーダル分析などのシナリオ向けに、すぐに使えるベクトルソリューションを提供します。標準の SQL インターフェイスを使用して、高精度なベクトルマッチングと複雑なビジネスロジックをシームレスに統合します。この統合により、低コストで互換性の高いアーキテクチャ上で、革新的な AI アプリケーションを迅速に構築およびデプロイできます。

  • 高次元ベクトルの効率的なストレージ、アクセス、計算:最大 16,383 次元の浮動小数点ベクトルデータの格納をサポートし、VECTOR データ型を導入しています。標準の SQL インターフェイスをサポートし、ベクトル化されたデータを直接バッチで書き込み、更新、管理できます。次の表に、サポートされているベクトル処理関数を示します。

    関数名

    説明

    VECTOR_DIM

    ベクトル内の次元数を返します。

    VEC_FROMTEXT

    文字列をベクトルに変換します。

    TO_VECTOR

    STRING_TO_VECTOR

    VEC_TOTEXT

    ベクトルを文字列に変換します。

    FROM_VECTOR

    VECTOR_TO_STRING

    VEC_DISTANCE

    2 つのベクトル間の距離を計算します。オペランドの 1 つがインデックス付きの列である場合、関数はインデックスの距離タイプを自動的に検出します。

    VEC_DISTANCE_EUCLIDEAN

    VEC_DISTANCE_COSINE

  • 高性能ベクトルインデックス:ベクトルインデックスは、深く最適化された HNSW (階層的ナビゲーブルスモールワールド) アルゴリズムを使用します。SIMD ハードウェアアクセラレーション、ブルームフィルターによる検索プルーニング、LIMIT 条件のプッシュダウンなどの技術を使用して、大規模なベクトルデータのリトリーブ効率を大幅に向上させます。また、ベクトルデータとスカラーデータのハイブリッドストレージと共同クエリもサポートしています。

  • オープンソースエコシステムとすぐに使えるユーザビリティ:この機能は MySQL プロトコルと完全に互換性があり、JDBC/ORM ツールや主要な開発フレームワークをサポートしています。DTS や DMS などの Alibaba Cloud サービスと統合し、データ同期、管理、バックアップ、リカバリなどのライフサイクル全体の機能を提供します。新しいクラスターを作成することなく、ワンクリックで既存のインスタンスをアップグレードできます。

適用範囲

  • データベースバージョン:MySQL 8.0 (マイナーエンジンバージョン 20251031 以降)。インスタンスがバージョン要件を満たしていない場合は、マイナーエンジンバージョンをアップグレードするか、メジャーエンジンバージョンをアップグレードできます。

  • この機能には次の制限があります

    • ベクトルインデックスは、InnoDB エンジンを使用するテーブルにのみ作成できます。

    • テーブルの主キーの長さは 256 バイトを超えることはできません。

    • inplace 構文を使用してベクトルインデックスを作成、変更、または削除することはできません。

    • ベクトルインデックスを INVISIBLE に設定することはできません。

    • ベクトルインデックスを含むテーブルで ごみ箱 機能を使用することはできません。

    • ベクトルインデックスに対するデータの変更とクエリは、リードコミッティド (RC) 分離レベルのみをサポートします。

    • HNSW アルゴリズムのランダム性 (ランダムなレベル割り当てやヒューリスティックアルゴリズムなど) のため、プライマリ/スタンバイインスタンス上のベクトルインデックスのグラフ構造が同一であることは保証されません。

    • ソースデータベースのストアドプロシージャまたは関数が vector 型を使用している場合、ベクトルをサポートしていない移行先データベースへの同期または移行は失敗します。

パラメーター管理

パラメーター

パラメーター

説明

vidx_default_distance

• 説明:デフォルトのベクトル距離タイプ。
• スコープ:セッション。
• データ型:String
• デフォルト値:EUCLIDEAN
• 有効な値:
























  • EUCLIDEAN:ユークリッド距離。多次元空間における 2 つのベクトル間の直線距離 (幾何学的距離) を計算します。

  • COSINE:コサイン距離。2 つのベクトル間の角度のコサインを計算して、ベクトルの長さを無視して方向の類似性を測定します。

vidx_hnsw_default_m

• 説明:HNSW インデックスのデフォルトの M 値 (グラフ内の各ノードの最大出次数)。
• スコープ:セッション。
• データ型:Integer
• デフォルト値:6
• 値の範囲:[3, 200]
























vidx_hnsw_ef_search

• 説明:HNSW インデックス クエリのデフォルトの ef_search 値 (検索範囲)。
• スコープ:セッション。
• データ型:Integer
• デフォルト値:20
• 値の範囲:[1, 10000]
























vidx_hnsw_cache_size

• 説明:HNSW インデックスキャッシュが使用できる最大メモリ (バイト単位)。
• スコープ:グローバル。
• データ型:BigInt
• デフォルト値:1048576
• 値の範囲:[1048576, 18446744073709551615]
























パラメーターの変更

  1. RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
  2. 左側メニューで、[パラメーター設定] をクリックします。

  3. [編集可能なパラメーター] タブで、変更するパラメーターを検索し、その値を設定します。

  4. [OK] をクリックし、[パラメーターの送信] をクリックします。表示されたダイアログボックスで、変更を有効にするタイミングを選択します。

説明

すべてのベクトル関連パラメーターは動的です。変更はインスタンスを再起動することなく、すぐに有効になります。

ベクトルストレージの有効化と使用

説明

インスタンスを再起動することなく、ベクトル機能を有効または無効にできます。

ステップ 1:ベクトルストレージの有効化

  1. RDS コンソール に移動し、対象のリージョンを選択してから、インスタンス ID をクリックします。

  2. [基本情報] ページの [実行ステータス] セクションで [ベクトルストレージ] を見つけ、[有効にする] をクリックします。

  3. ステータスが [有効] に変わると、この機能はすぐに有効になります。

ステップ 2:テーブルとベクトルインデックスの作成

-- 5 次元のベクトル列と HNSW インデックスを持つテーブルを作成
CREATE TABLE product_embeddings (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  product_name VARCHAR(255),
  embedding VECTOR(5) NOT NULL,
  -- ベクトルインデックスを作成し、M (グラフの接続性) と距離メトリックを指定
  VECTOR INDEX idx_embedding(embedding) M=16 DISTANCE=COSINE
);

ステップ 3:データの挿入

-- VEC_FROMTEXT 関数を使用してベクトルデータを挿入
INSERT INTO product_embeddings (product_name, embedding) VALUES
('product_A', VEC_FROMTEXT('[0.1, 0.2, 0.3, 0.4, 0.5]')),
('product_B', VEC_FROMTEXT('[0.6, 0.7, 0.8, 0.9, 1.0]')),
('product_C', VEC_FROMTEXT('[0.11, 0.22, 0.33, 0.44, 0.55]'));

ステップ 4:ベクトル類似度検索の実行

-- 指定されたベクトル '[0.1, 0.2, 0.3, 0.4, 0.51]' に最も類似する 2 つの製品を検索
SELECT
  id,
  product_name,
  VEC_DISTANCE(embedding, VEC_FROMTEXT('[0.1, 0.2, 0.3, 0.4, 0.51]')) AS similarity_score
FROM
  product_embeddings
ORDER BY
  similarity_score ASC -- コサイン距離が小さいほど、ベクトルの類似度が高くなります
LIMIT 2;