該外掛程式是全密態資料庫的效能增強外掛程式,能夠提高全密態資料庫密文索引相關操作的效率,本文介紹如何使用該外掛程式。
背景資訊
全密態資料庫提供了全鏈路加密的功能,在保證資料安全的同時,會損耗部分系統效能,具體損耗情況,請參見全密態資料庫效能測試報告。因此,阿里雲推出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
。