1

ファイルを 1 行ずつ読み取り、レコードをデータベースに挿入するアプリケーションを作成しています。レコード数は約 50 万件です。問題は、プロセス全体に約 2 時間かかることです。

このプロセスをスピードアップするにはどうすればよいですか?

public long insertTable(int id,String word) {
    ContentValues wordValues = new ContentValues();
    wordValues.put(COLUMN_D, id);
    wordValues.put(COLUMN_WORD, word);
    return this.sqliteDBInstance.insert(TABLE_ENGLISH, null, wordValues);
}
4

3 に答える 3

0

SQL ステートメントを a 内にカプセル化するTransactionと、データベース操作が驚くほど速くなります。SQLite トランザクションを使用する場合、操作全体に対して単一のジャーナル ファイルのみが作成されるためです。

于 2012-06-30T12:50:33.353 に答える
0

OrmLiteを使用することをお勧めします。sqlite を使用 すると生活が向上します

于 2012-06-30T12:50:36.723 に答える
0

InsertHelperとトランザクションを使用します。InsertHelper は、コンパイルされたステートメントを使用し、オブジェクトの作成を回避するため、非常に効率的です。これをデータベース トランザクション内で行うと、500 倍高速になります。

于 2012-06-30T13:21:34.450 に答える