1

2 つの完全に異なる MySQL データベースがあり、どちらも独自のユーザー テーブル スキームを持っています。ユーザーテーブルを(リアルタイムで)同期したいので、ユーザーがいずれかのデータベースに追加されたときに、それに応じてもう一方のデータベースを更新する必要があります。私の質問は、そのような同期を行うことは可能ですか? はいの場合、これを行うための効果的な方法/方法は何ですか?

4

2 に答える 2

2

行が挿入/更新されるたびにデータベースでこれが発生するようにしたい場合は、TRIGGERの候補のように聞こえます。これにより、テーブル A に変更が発生するたびにテーブル B に自動的に「ミラー」変更を加えることができるようにコードを作成できます。挿入/更新が他のテーブルのトリガーから来ていることを伝える方法であり、無限ループに巻き込まれることはありません。

于 2011-07-18T17:43:16.787 に答える
1

はい、可能ですが、スキーマが異なるため、手動で行うのが最善の方法です。一方のデータベースを更新するコードで、もう一方のデータベースを適切に更新するようにします。スキーマが異なるため、これはかなり必要です。更新時に呼び出される手動マッパーを効果的に実装しています。

他にも方法はありますが、これが最も簡単で効果的です。

編集:さて、これを行う他の方法:最後のクエリ以降の更新に基づいて1つのテーブルをクエリし、それらの更新を2番目のテーブルに伝播する通常のジョブ(cronjobなど)を用意します。ただし、この方法には潜在的な遅れがあります。または、各ユーザーテーブルのトリガーに基づいて何かを行うこともできますが、トリガーの実装方法によっては、実行時間が大幅に長くなる可能性があるため、このアプローチは避けることをお勧めします。ただし、最も簡単な方法は、ユーザーテーブルの更新コードを変更して、1つだけではなく両方のテーブルを変更することです。

于 2011-07-18T17:18:15.093 に答える