私は2つのテーブルを持っていますが、PhraseIdは両方のプライマリキーです。Modifiedは1970年以降の秒数です。変更はデータロードの一部ですが、更新が容易でないと必須ではありません。私はそれなしで行うことができる場合、私はちょうどINSERTを使用するか、PhraseSourceテーブルは5010行(いくつかの新しいといくつか変更された行) フレーズテーブルは5000行が含まれているが含まれていINSERT OR REPLACEに続けてSELECTを使用すると、パフォーマンス上のペナルティはありますか?
PhraseSource with columns PhraseId, Text, Modified
Phrase with columns PhraseId, Text, Modified
REPLACEしたいと思います。 PhraseSourceの新しい行と変更された行でPhraseテーブルを更新したいと思います。私のアプリケーションでは、変更されたデータを表示する必要はありませんが、挿入や更新を簡単に行うために追加されています。
ここで私が思いついたのです。これが更新と挿入を行う良い方法であるかどうか教えてください。
INSERT OR REPLACE INTO Phrase(PhraseId, Text)
SELECT PS.PhraseId, PS.text FROM PhraseSource AS PS
この(おそらく行がソースで最後に変更された1970年からの秒数が含まれているmodifedカラムを使用)を行うには良い方法があれば、私も非常に多くの任意の提案をいただければ幸いです。
をちょうど競合がある場合、古い行を削除し、非常に多くの実際の変更がない場合でも、それはテーブル全体を書き換えるREPLACE。 –