全部產品
Search
文件中心

ApsaraDB RDS:向量儲存

更新時間:Dec 02, 2025

RDS MySQL深度整合企業級向量資料處理能力,原生支援最高16,383維向量資料的儲存及計算,整合主流向量運算函數,並基於深度最佳化的HNSW(Hierarchical Navigable Small World)演算法構建高效近鄰搜尋能力,支援對全維度向量列建立索引。

功能說明

RDS 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

    計算兩向量間的距離(若參數之一是索引列,可自動識別索引的距離類型)

    VEC_DISTANCE_EUCLIDEAN

    VEC_DISTANCE_COSINE

  • 高效能向量索引:基於深度最佳化的HNSW (Hierarchical Navigable Small World) 演算法構建向量索引,通過SIMD硬體加速、布隆過濾器搜尋剪枝、LIMIT條件下推等技術,顯著提升大規模向量資料的檢索效率。同時支援向量資料與標量資料的混合儲存與聯集查詢。

  • 開源生態,開箱即用:完全相容MySQL協議,支援JDBC/ORM工具及主流開發架構。整合阿里雲DTS、DMS等服務,提供資料同步、管理、備份恢複等全生命週期能力。支援存量執行個體一鍵升級,無需建立叢集。

適用範圍

  • 資料庫版本: MySQL 8.0。

  • 核心小版本20251031 或以上。當版本不符合要求時,可以升級升級核心小版本資料庫大版本

  • 使用該功能時有以下限制

    • 僅支援在InnoDB引擎表上建立向量索引。

    • 表主鍵長度不能超過256位元組。

    • 建立、修改、刪除向量索引無法使用inplace文法。

    • 向量索引不能被設定為INVISIBLE

    • 包含向量索引的表不支援Recycle Bin功能。

    • 向量索引的資料修改和查詢只支援RC (Read Committed) 隔離等級。

    • 由於HNSW演算法的隨機性,包括 level 的隨機、啟發學習法演算法等,無法保證主備的向量索引的圖結構完全一致。

    • 在來源資料庫中的預存程序、函數中使用vector類型,會導致同步或遷移到不支援向量的目標資料庫失敗。

參數管理

參數說明

參數名稱

說明

vidx_default_distance

• 描述:預設向量距離類型。
• 參數範圍:Session。
• 資料類型:String
• 預設值:EUCLIDEAN
• 取值範圍:



  • EUCLIDEAN-歐氏距離,計算兩個向量在多維空間中的直線距離(幾何距離)。

  • COSINE-餘弦距離,計算兩個向量之間的夾角餘弦值,衡量方向相似性(忽略向量長度)

vidx_hnsw_default_m

• 描述:HNSW索引的預設m值(圖中每個節點的最大出邊數)。
• 參數範圍:Session。
• 資料類型:Integer
• 預設值:6
• 取值範圍:[3, 200]



vidx_hnsw_ef_search

• 描述:HNSW索引查詢時的預設ef_search值(搜尋範圍)。
• 參數範圍:Session。
• 資料類型:Integer
• 預設值:20
• 取值範圍:[1, 10000]



vidx_hnsw_cache_size

• 描述:HNSW索引緩衝可使用的最大記憶體(單位:位元組)。
• 參數範圍:Global。
• 資料類型:BigInt
• 預設值:1048576
• 取值範圍:[1048576, 18446744073709551615]



修改參數

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列中單擊參數設定

  3. 可修改參數頁簽內搜尋待修改參數,並配置參數值。

  4. 單擊確定,然後單擊提交參數,並在彈出的視窗中選擇生效的時間段。

說明

所有向量相關參數均為動態參數,修改後無需重啟執行個體即可生效。

開啟功能與使用

說明

開啟/關閉向量功能無需重啟執行個體。

第一步:開啟向量支援

  1. 訪問 RDS管理主控台,選擇目標地區並單擊執行個體ID。

  2. 基本資料頁的運行狀態地區,找到向量儲存,單擊其右側的開啟

  3. 狀態變為已開啟後,功能即刻生效。

第二步:建立表和向量索引

-- 建立一個包含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
);

第三步:插入資料

-- 使用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]'));

第四步:進行向量相似性查詢

-- 尋找與給定向量 '[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 -- COSINE距離越小越相似
LIMIT 2;