sql >> データベース >  >> RDS >> Mysql

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

    InnoDBまたは任意の行レベルのトランザクションRDBMSを使用している場合は、 書き込みトランザクションは、完全に通常の状況でもデッドロックを引き起こす可能性があります。テーブルが大きく、書き込みが大きく、トランザクションブロックが長いと、デッドロックが発生する可能性が高くなります。あなたの状況では、それはおそらくこれらの組み合わせです。

    デッドロックを真に処理する唯一の方法は、デッドロックを予期するようにコードを記述することです。データベースコードが適切に記述されていれば、これは一般的にそれほど難しいことではありません。多くの場合、try/catchを配置するだけです。 クエリ実行ロジックを回避し、エラーが発生したときにデッドロックを探します。キャッチした場合、通常は、失敗したクエリを再度実行しようとします。

    このページ を読むことを強くお勧めします。 MySQLマニュアルで。デッドロックに対処し、その頻度を減らすために行うべきことのリストがあります。



    1. AnsibleGalaxyのPostgreSQLPlanet

    2. SQLclを使用するときにクエリからINSERTステートメントを生成する方法(Oracle)

    3. Oracleで曜日名の正しいパディングを削除する方法

    4. Oraclesqlの単一行関数