特定の表にVARCHAR値のみを含むデータベースを操作する場合、そのような表を更新するときのパフォーマンスをどのように改善できますか?SQLiteでVARCHAR値のみを使用してデータを操作するときのパフォーマンスを向上させるにはどうすればよいですか?
このようなテーブルを更新する際の問題は、新しいデータが取得されたときに、INSERT
またはUPDATE
の行になるかどうかを決定する必要があります。
テーブルが小さい場合は、新しい値が既に存在するかどうかを調べるためにSQLクエリを実行し、結果に応じてINSERT
またはUPDATE
にするのは簡単です。しかし、あなたが100以上の新しいデータ行を取得している場合、それらのうちのいくつかはすでにデータベース上にあるかもしれないし、そうでないかもしれませんし、全く新しいかもしれないものもあります。コンプリート。
特定の値を共有するデータベース上のすべての内容を削除することができますか?同じ日付を使用すると、新しいデータは各行を個別に照会するよりも潜在的に優れていますか?
例:例2
1 2 3 ... 20
01/01 A4 A5 A6 ... A23
01/02 B1 B2 B3 ... B20
...
01/31 Z1 Z5 Z6 ... Z20
:
1 2 3 ... 20
01/01 A1 A2 A3 ... A20
01/02 B1 B2 B3 ... B20
...
01/31 Z1 Z2 Z3 ... Z20
更新した後
1 2 3 ... 20
01/01 A1 ... A20
01/02 B1 B2 B3 ... B20
...
01/31 Z1 Z3 ... Z20
例2更新後:
1 2 3 ... 20
01/01 A4 A5 A6 ... A23
01/02 B1 B2 B3 ... B20
...
01/31 Z1 Z5 Z6 ... Z20
'INSERT OR REPLACE'を使用してください。 – CommonsWare
さらにトランザクションベースの操作を使用して、挿入/置換するアイテムごとに開閉しないようにします – tyczj
別のアプローチでは、タイムスタンプの列を追加し、最後の行を各行に戻して更新する必要がなくなりますコマンドを実行し、最終的に各レコードの最後のタイムスタンプ以外のすべてを削除するプロセスを実行します。 –