-3

多数のデバイスでトランザクションを実行すると、デッドロック エラーが発生します。私はMySQLを使用しています。膨大な数のデバイスが同時にデータベースにアクセスします。これにより、エラー コード 1205 が発生します。

なにか提案を...??

4

2 に答える 2

1

開始できるいくつかの場所を次に示します。

あなたの質問は絶望的に広いです。いくつかの宿題をして、いくつかの事実を得る必要があります。大変な作業ですが、絶対に必要です。

私見では...

于 2012-06-08T05:45:54.843 に答える
1

ドキュメントから:

メッセージ: ロック待機タイムアウトを超えました。トランザクションを再開してみてください

これがすべてを物語っています。もう 1 つの問題は、タイムアウトの原因を突き止める方法ですが、与えられた情報でそれを判断することはほとんど不可能です。いくつかの数値 (「膨大な数」とはどのくらいか、トランザクションで実行されるステートメントの数 (およびその数) ) と、関連するテーブル構造に関する情報を提供する必要があります。

トランザクションをこれ以上高速化する方法がない場合は、トランザクションを編集my.cnfしてタイムアウトを増やすことができます ( innodb_lock_wait_timeout)。または、このトランザクションのタイムアウトを増やしたい場合は、トランザクションをSET innodb_lock_wait_timeout = 120;開始する前に を呼び出します。

于 2012-06-08T05:42:06.313 に答える