テーブルに BLOB 型の列がたくさんあります。これらの列に含まれるデータは、MySQL の AES_ENCRYPT() 関数で暗号化されます。これらのフィールドのいくつかは、私が構築しているアプリケーションの検索セクションで使用されています。頻繁にアクセスされる列にインデックスを付ける価値はありますか? それらが BLOB であるという事実や、データ自体が暗号化されているという事実によって、インデックスが役に立たなくなるかどうかはわかりませんでした。
編集:ここに私の特定のケースに関する詳細があります。各BLOBである〜10列程度のテーブルがあります。このテーブルに挿入される各レコードは、AES_ENCRYPT() 関数を使用して暗号化されます。アプリケーションの検索部分で、ユーザーはクエリを入力できます。SELECT AES_DECRYPT(fname MYSTATICKEY) AS fname FROM some_table
LIKE 句を使用して検索を実行できるように、クエリを取得してこのように復号化します。私が興味を持っているのは、インデックスが復号化から返される実際のデータではなく、暗号化されたデータをインデックス化するかどうかです。インデックスが暗号化されたバイナリ文字列のみに適用された場合、パフォーマンスはまったく向上しないと推測しています。私はそれについて間違っていますか?