このシナリオでは、何人かのマネージャー (約 150 人) がいます。彼らの日常業務の 1 つは、ID とともにデータベースに格納される 50 個の (一定の) 認証コード (6 ~ 8 桁の数字) を生成することです。認証コードが使用されている場合、そのコードは使用済みとしてマークされ、トリガーは、それらが 15 日経過して使用されたときにそれらを削除します。
私のテーブルでは、認証コードを一意のキーとして設定しました。乱数を生成し、存在する場合はデータベースにクエリを実行し、別の乱数を生成するか、保存します。
db 内の番号の存在をチェックする私のロジックを除いて、すべて問題ありません。現在、1090083 を超える保留中の承認コードがあるため、この往復 + チェックにより大幅な遅延が発生しています。これらの認証コードは流通しているため、取り消すことはできません。現在の負荷では、新しい番号を見つけるのに時間がかかっています。
使用された乱数の数に関係なく、実行速度が遅くなる別のロジックで実装する必要があります。
私のテーブルは次のように設計されています
slno(認証増分) || auth_code (ランダムコード) || auth_by (作成者) || 使用済み (1=使用済み/0=未使用)