データベース テーブルのデータを SQL クエリの新しいデータと同期する必要があります。新しいデータにない現在のエントリを削除し、現在のデータにない新しいエントリを挿入する必要があります。この疑似コードを使用して、Javaでこれを行うことができました:
// 1) get all data in database and store it in list (currentList)
// 2) get new data obtained through sql query and store it in list (newList)
// 3) sync both list
for(entry : currentList) {
if(newList.contains(entry))
finalList.add(entry)
}
for(entry : newList) {
if(!finalList.contains(entry))
finalList.add(entry)
}
// 4) delete all data from DB
// 5) insert finalList data to DB
正常に動作しますが、新しいエントリを挿入して新しいデータに見つからないエントリを削除するのではなく、すべてを削除してリスト全体を再挿入するため、大量のデータを処理するときにパフォーマンスの問題が発生すると思います。
これを行うためのより良い方法を提案できますか? データの同期を処理できる SQL クエリを作成することは可能ですか?