0

ユーザーに一括招待を送信するアプリケーションがあります。そのために、1 つのテーブルに何千ものレコードを挿入しています。私のストアド プロシージャは、ユーザーからのカンマ区切りの文字列をパラメーターとして受け入れ、カンマで分割し、その文字列から各電子メールをループで解析し、個々の電子メールをレコードとしてテーブルに挿入します。

主な問題は、複数のユーザーが同時にこのストアド プロシージャに要求を送信すると、mysql が「デッド ロック」エラーをスローすることです。これは、各ユーザーが mysql に異なる接続で接続しているためです。それで、私の質問は、この種のタスクを実行するための適切な解決策は何ですか? または、これは私のデータベース構成の問題ですか? Amazon RDS (mysql) ラージ インスタンスを使用しています。私のユーザーは一度に 2000 通のメールを送信できます。もう1つ、私はトランザクションを使用していません...コミット...ロールバック。

以前にこのユースケースを質問として投稿しましたが、適切な回答が得られませんでした。そのリンクは次のとおりです。

1)ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションを再開してみてください

2) https://stackoverflow.com/questions/19091968/deadlock-found-when-trying-to-get-lock-try-restarting-transaction-2nd-try

ありがとう

4

0 に答える 0