列タイプ、アプリケーションのユーザーが名、姓、メールアドレスの部分一致に基づいてユーザーを検索できるようにするにはどうすればよいですか?クエリを実行するためにデータベース全体を復号化する必要がある場合、データベースに100万人のユーザーがいる場合、これは実用的ではありません。1これが暗号化のポイントだと思います。簡単に元に戻せる場合は、その仕事をしていません。暗号化にはソルトフィールドが関係していると思われます。その場合は、選択肢がほとんどない可能性があります。2名前のハッシュ(SHA256など)と(定数)saltを格納する列を作成し、検索された名前(およびsalt)のハッシュを検索します。完全に一致するもののみが見つかることに注意してください。共通名のハッシュが複数回現れるユーザー変数ソルトを使用しないとセキュリティ上のリスクがあり、攻撃者はこれを使用してデータを解読することなく名前を占領することができます。3100万人のユーザーのデータは、今日の基準では非常に少ないです。アプリケーションの起動時にDB全体をメモリにロードし、すべての名前に逆インデックスを使用して、おそらく順序付けされたマップの下でプレフィックス検索を許可するか、メモリ内のNoSQL(たとえばLucene)を使用して重いリフティングを行うことができます。データのロードには数秒かかりますが、ルックアップは高速で点灯します-入力候補を入力ボックスの後ろに置くのに十分な速さです。