ユーザーグループ (多対多の関係) があり、ジレンマがあります。ユーザーがデータベースに2つのクエリを実行するグループに既に含まれているかどうかを確認できます(チェックと挿入)。または、user_idとgroup_idに一意のインデックスを配置し、新しい行を挿入して、とにかく正しいユーザーグループになります(ユーザーがそのようなグループを持っている場合は失敗します)。
質問: このようなテーブルに何百万行もある非常に大きなアプリケーションでパフォーマンスが向上する方法はどれですか?
PS。一意の制約以外の理由で 2 番目の方法が失敗する可能性があることは承知しており、一部の人にとっては悪い習慣と思われるかもしれません。