全部產品
Search
文件中心

ApsaraDB RDS:加速密文索引(encdb_btree)

更新時間:Jun 19, 2024

該外掛程式是全密態資料庫的效能增強外掛程式,能夠提高全密態資料庫密文索引相關操作的效率,本文介紹如何使用該外掛程式。

背景資訊

全密態資料庫提供了全鏈路加密的功能,在保證資料安全的同時,會損耗部分系統效能,具體損耗情況,請參見全密態資料庫效能測試報告。因此,阿里雲推出encdb_btree外掛程式,能夠有效提高全密態資料庫密文索引相關操作的效率。

前提條件

功能限制

該外掛程式在功能上大部分已相容B-Tree,但仍有部分功能不支援,具體如下:

  • 不支援在建立UNIQUE INDEX時使用ON CONFLICT文法。

  • 不支援使用FOREIGN KEY

管理外掛程式

  • 建立外掛程式

    CREATE EXTENSION IF NOT EXISTS encdb;
    CREATE EXTENSION encdb_btree;
    說明

    encdb_btree外掛程式依賴encdb外掛程式,請先建立並載入encdb外掛程式。

  • 卸載外掛程式

    DROP EXTENSION encdb_btree;
    說明
    • 如果資料庫中存在未刪除的enc_btree索引,外掛程式將會卸載失敗。需要手動執行DROP INDEX命令刪除已有的enc_btree索引後,再卸載外掛程式。

    • 您也可以通過DROP EXTENSION encdb_btree CASCADE;命令卸載外掛程式,該方法會在不影響表資料的情況下,自動刪除所有已有的enc_btree索引。

使用方法

全密態資料庫定義加密表後,該外掛程式支援為加密列建立enc_btree索引。

以如下加密表為例:

CREATE TABLE test(
  t1 enc_int4,
  t2 enc_int8,
  t3 enc_text
);

您可以在加密表上通過USING enc_btree關鍵字建立enc_btree索引:

CREATE INDEX ON test USING enc_btree (t1);

CREATE UNIQUE INDEX ON test USING enc_btree (t2);

CREATE INDEX ON test USING enc_btree (t1, t2, t3);

CREATE INDEX ON test USING enc_btree (t1 desc, t2 asc);

您在建立enc_btree索引後,無需更改業務SQL,全密態資料庫在處理SQL時會自動產生調用enc_btree的執行計畫,從而提高全密態資料庫密文索引相關操作的效率。

效能提升

請參見全密態資料庫效能測試報告

常見問題

  • Q:使用外掛程式時報錯ERROR: unexpected non-btree speculative unique index如何處理?

    該外掛程式暫不支援在建立UNIQUE INDEX時使用ON CONFLICT文法。

  • Q:使用外掛程式時報錯ERROR: only b-tree indexes are supported for foreign keys如何處理?

    A:該外掛程式暫不支援使用FOREIGN KEY