MyIsam エンジンで MySQL を使用しており、ユーザーがまだデータベースにアクセスしている間に膨大な数 (数百万) の行を毎日更新する必要がある状況があります。
米国、英国、インド、中国のさまざまなタイムゾーンのユーザーがいます。ユーザーが最初にサインアップすると、サードパーティのソースからデータがダウンロードされます。すべてのユーザーは同じテーブル セットを共有しますが、データは重複しません。つまり、ユーザーが別のユーザーと同じ行にアクセスすることはありません。
サード パーティのシステムはデータを変更するため、データベースを最新の状態に保つために、ユーザー データの新しいスナップショットを毎晩ダウンロードします。ユーザーのデータは、そのユーザーのタイムゾーンを基準にして真夜中に更新されます。
すべてのユーザーが同じテーブルを共有するため、英国のユーザーがアクティブにデータを参照している間に、データ更新プロセスがアメリカのタイムゾーンのユーザーのデータを更新できることを意味します。ここに問題があります。何百万ものデータを更新する必要がありますが、実行できません。
データベースにアクセスしている他のユーザーに影響を与えることなく、ユーザーのデータを更新する最善の方法を提案してください。データベースに格納されているデータは数値で、すべての列は整数です。