基本的に、現在次のクエリがあります:
大量のデータがあるため、現在タイムアウトになっています。データベース構成を変更せずにタイムアウトを回避する方法はありますか?
使用する flyway パッケージは、ホスト RDBMS のトランザクション セマンティクスを使用して、不完全な操作を完全にロールバックできるようにするのに最適です。これは、単一の ACID 準拠のトランザクションで示したような更新操作を実行するように設計されていることを意味します。
関連するテーブルが大きい場合 (数百万行以上)、トランザクションが非常に大きくなる可能性があります。 MySQL サーバーをクラッシュさせ、トランザクション ログをディスクまたは SSD に流出させる可能性があります。これらのトランザクション ログのコミットには長い時間がかかる場合があります。行数については言及しませんでしたが、行数が多い場合、Flyway はそのジョブに適したツールではない可能性があります。
ロック タイムアウトは、他の同時アクティビティがあるデータベースに対してこれを実行していることを意味します。最良の結果を得るには、静かなデータベースでこれを実行することをお勧めします。
これを行うことで、ロック待機タイムアウトを増やすことができます。
それなら、休日の日の出前か、別の静かな時間にもう一度試してみてください。詳細については、こちらをご覧ください。
Flyway ジョブが完了したら、ロック タイムアウトを以前の値に戻すことを検討してください。
一度に 1000 行を更新するなど、バッチ更新を検討することもできます。しかし、フライウェイはこれをサポートしていないようです。このルートに進む場合は、別の質問をすることができます。
使用する flyway パッケージは、ホスト RDBMS のトランザクション セマンティクスを使用して、不完全な操作を完全にロールバックできるようにするのに最適です。これは、単一の ACID 準拠のトランザクションで示したような更新操作を実行するように設計されていることを意味します。
関連するテーブルが大きい場合 (数百万行以上)、トランザクションが非常に大きくなる可能性があります。 MySQL サーバーをクラッシュさせ、トランザクション ログをディスクまたは SSD に流出させる可能性があります。これらのトランザクション ログのコミットには長い時間がかかる場合があります。行数については言及しませんでしたが、行数が多い場合、Flyway はそのジョブに適したツールではない可能性があります。
ロック タイムアウトは、他の同時アクティビティがあるデータベースに対してこれを実行していることを意味します。最良の結果を得るには、静かなデータベースでこれを実行することをお勧めします。
これを行うことで、ロック待機タイムアウトを増やすことができます。
リーリーそれなら、休日の日の出前か、別の静かな時間にもう一度試してみてください。詳細については、こちらをご覧ください。
Flyway ジョブが完了したら、ロック タイムアウトを以前の値に戻すことを検討してください。
一度に 1000 行を更新するなど、バッチ更新を検討することもできます。しかし、フライウェイはこれをサポートしていないようです。このルートに進む場合は、別の質問をすることができます。