多数のデバイスでトランザクションを実行すると、デッドロック エラーが発生します。私はMySQLを使用しています。膨大な数のデバイスが同時にデータベースにアクセスします。これにより、エラー コード 1205 が発生します。
なにか提案を...??
多数のデバイスでトランザクションを実行すると、デッドロック エラーが発生します。私はMySQLを使用しています。膨大な数のデバイスが同時にデータベースにアクセスします。これにより、エラー コード 1205 が発生します。
なにか提案を...??
開始できるいくつかの場所を次に示します。
http://www.serveradminblog.com/2011/03/tuning-mysql-performance-howto-part-1/
http://dev.mysql.com/doc/refman/5.5/en/execution-plan-information.html
あなたの質問は絶望的に広いです。いくつかの宿題をして、いくつかの事実を得る必要があります。大変な作業ですが、絶対に必要です。
私見では...
ドキュメントから:
メッセージ: ロック待機タイムアウトを超えました。トランザクションを再開してみてください
これがすべてを物語っています。もう 1 つの問題は、タイムアウトの原因を突き止める方法ですが、与えられた情報でそれを判断することはほとんど不可能です。いくつかの数値 (「膨大な数」とはどのくらいか、トランザクションで実行されるステートメントの数 (およびその数) ) と、関連するテーブル構造に関する情報を提供する必要があります。
トランザクションをこれ以上高速化する方法がない場合は、トランザクションを編集my.cnf
してタイムアウトを増やすことができます ( innodb_lock_wait_timeout
)。または、このトランザクションのタイムアウトを増やしたい場合は、トランザクションをSET innodb_lock_wait_timeout = 120;
開始する前に を呼び出します。