私は、毎日いくつかの外部製品フィードが供給されるアプリケーションを作成している最中であり、製品データベースにフィードを入力しています。ただし、製品データベースを最新のフィードと同期させておく必要があります。
以前、db から現在の商品リストを配列に取り込み、配列を最新のフィードと比較するという理論をもてあそんでいましたが、商品数が数千になるとすぐに打ちのめされました。(5000 レコードを取得しようとしたときにメモリが不足しました)。
したがって、少し調査した結果、おそらくTRIGGERSを使用して、解決策はおそらくSQL側にあるようです。どうすればいいのかよくわかりませんが、私の質問です。
したがって、同期プロセスで達成する必要がある 2 つの目的は次のとおりです。
1) データベースにまだ存在しない新製品を挿入します。これは、INSERT IGNORE メソッドで実現できます。
2) 最新のフィードに存在しない DB 上の製品を検索し、それらに対して何かを行います。(削除済みとしてフラグを立てるか、削除済みの製品テーブルに移動するなど)
ステップ2は私が問題を抱えているところです。おそらくすべての同期操作で、最新のフィードから製品を「Temp-Products」テーブルに挿入し、「製品テーブル」と「Temp-Products」テーブルを比較して、必要なレコードを見つけることを考えています。削除済みとしてフラグが立てられました。
アドバイスをお願いします。
ありがとう