ユーザーに一括招待を送信するアプリケーションがあります。そのために、1 つのテーブルに何千ものレコードを挿入しています。私のストアド プロシージャは、ユーザーからのカンマ区切りの文字列をパラメーターとして受け入れ、カンマで分割し、その文字列から各電子メールをループで解析し、個々の電子メールをレコードとしてテーブルに挿入します。
主な問題は、複数のユーザーが同時にこのストアド プロシージャに要求を送信すると、mysql が「デッド ロック」エラーをスローすることです。これは、各ユーザーが mysql に異なる接続で接続しているためです。それで、私の質問は、この種のタスクを実行するための適切な解決策は何ですか? または、これは私のデータベース構成の問題ですか? Amazon RDS (mysql) ラージ インスタンスを使用しています。私のユーザーは一度に 2000 通のメールを送信できます。もう1つ、私はトランザクションを使用していません...コミット...ロールバック。
以前にこのユースケースを質問として投稿しましたが、適切な回答が得られませんでした。そのリンクは次のとおりです。
1)ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションを再開してみてください
ありがとう