を同期、私は2つのMySQL DBテーブルを持っている:「table_original」と「table_copy」ように、2つのMySQL dbテーブル
ここに私の現在の設定です:
毎晩、table_original
は、情報を他のサーバから更新されます。古いdb行を削除するか、一意のpost_idを持つ新しい行を追加します(行が削除されても、2つの同一のpost_idはありません)。
次に、post_idとともに特定の情報がtable_copy
にコピーされます。したがって、2つはpost_id
によってリンクされています。
これまでのところ、table_original
には〜20,000行があり、table_copy
には〜40,000があります。
table_copy
が最初のテーブルから更新されていないことに気付きましたが、最初のテーブルから削除されたものを削除する代わりに行を追加しているだけでした。
それらを同期するためには、私の最初のアプローチはpost_idのが存在する場合でない場合は、何もしない、table_copy
から行を削除し、その後table_copy
に対してtable_original
から各行を確認することでした。
私の懸念は、table_original
が毎晩更新されることです。以前のpost_id行が削除されたり、新しい行が追加されたりする可能性があります。残念ながら、それが完了する前に何が行われているのか分かりません。意味、私はdbが削除され、追加されたかを見るために更新されるまで待たなければならない。
次に、最初のテーブルが更新されるたびに、2番目のテーブルに対してすべての行をチェックして更新する必要があります。テーブルは大きくなり、私はこのアプローチが最善ではないかもしれないと心配しています。
私は何をお勧めしますか?
ありがとうございます! table_originalには存在しないtable_copy内の行を削除するには
"元の"テーブルにトリガーを置いて、別の場所にフラグを設定します。そうすれば、その旗がアップし、あなたはそれを他の場所で検出することができます。あなたの "後処理"をしているとき、あなたはフラグをリセットします。 –
ええと、私があなたがそれの意味を完全に理解しているかどうかはわかりません。しかし、返事に感謝します。もし私がそれについて精緻化することができるかどうかがわかります。ありがとう。 –