encdb_btree拡張機能は、完全暗号化データベース機能が有効になっているApsaraDB RDS for PostgreSQLインスタンスのパフォーマンスを向上させるために使用されます。 拡張機能は、RDSインスタンス上の完全に暗号化されたデータベースの暗号文インデックスの操作を容易にします。 このトピックでは、encdb_btree拡張機能の使用方法について説明します。
背景情報
完全に暗号化されたデータベース機能は、エンドツーエンドの暗号化ソリューションを提供します。 この機能により、ユーザーデータのセキュリティは確保されますが、システムパフォーマンスは低下します。 詳細については、「完全暗号化データベース機能のパフォーマンステストレポート」をご参照ください。 この問題を解決するために、Alibaba Cloudはencdb_btree拡張機能を提供し、完全暗号化データベースの暗号文インデックスの操作を容易にします。
前提条件
完全に暗号化されたデータベース機能が有効になり、RDSインスタンスに対して設定されます。 詳細については、「完全暗号化データベース機能の有効化」、「機密データの定義」、および「クライアントからの完全暗号化データベース機能の使用」をご参照ください。
RDSインスタンスのマイナーエンジンバージョンが20230830以降です。 マイナーエンジンバージョンの更新方法の詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのマイナーエンジンバージョンの更新」をご参照ください。
制限事項
拡張機能のほとんどの機能は、Bツリーインデックスと互換性があります。 次のリストでは、制限について説明します。
ON CONFLICT
構文を使用してUNIQUE INDEX
を作成することはできません。FOREIGN KEY
は使用できません。
拡張機能の管理
エクステンションを作成します。
encdbを超えていない場合は拡張を作成します。拡張の作成encdb_btree;
説明encdb_btree拡張は、EncDB拡張に依存します。 encdb_btreeエクステンションを作成する前に、EncDBエクステンションを作成してロードする必要があります。
拡張機能をアンインストールします。
ドロップ拡張encdb_btree;
説明RDSインスタンスにenc_btreeインデックスが存在する場合、拡張機能のアンインストールに失敗します。 拡張機能をアンインストールする前に、DROP INDEXステートメントを実行して既存のenc_btreeインデックスを削除する必要があります。
DROP EXTENSION encdb_btree CASCADE; ステートメントを実行して、拡張機能をアンインストールすることもできます。 このメソッドは、テーブルデータに影響を与えることなく、既存のすべてのenc_btreeインデックスを自動的に削除します。
拡張機能を使用するUse the extension
完全に暗号化されたデータベースでテーブルを暗号化した後、拡張機能を使用して、暗号化されたテーブル列のenc_btreeインデックスを作成できます。
以下の表は、例として使用される。
CREATE TABLEテスト (
t1 enc_int4,
t2 enc_int8,
t3 enc_text
);
using enc_btree
キーワードを使用して、暗号化されたテーブルにenc_btreeインデックスを作成できます。
enc_btree (t1) を使用してテストでインデックスを作成します。enc_btree (t2) を使用してテストで一意のインデックスを作成します。enc_btree (t1、t2、t3) を使用してテストでインデックスを作成します。enc_btreeを使用してテストでインデックスを作成します (t1 desc、t2 asc);
enc_btreeインデックスを作成した後、ビジネスSQL文を変更する必要はありません。 完全暗号化データベース機能は、SQL文の実行時にenc_btreeインデックスを呼び出す実行プランを自動的に生成します。 これにより、完全暗号化データベースの暗号文インデックスに対する操作が容易になります。
パフォーマンス向上
詳細については、「完全暗号化データベース機能のパフォーマンステストレポート」をご参照ください。
よくある質問
拡張機能を使用したときに
ERROR: unexpected non-btree投機的一意インデックス
エラーメッセージが表示された場合はどうすればよいですか?UNIQUE INDEX
を作成するとき、拡張機能はON CONFLICT
構文をサポートしません。拡張機能を使用すると、
ERROR: 外部キーでのみb-treeインデックスがサポートされます
というエラーメッセージが表示された場合はどうすればよいですか。拡張機能は
FOREIGN KEY
をサポートしていません。