sqlite数据库更新500条数据花了43秒,汗一个
public void addIndexs(List<SearchIndex> newIndexs) {
if (newIndexs == null || newIndexs.size() == 0)
return;
SQLiteDatabase database = SQLiteDatabase.openDatabase(dbPath, PWD, null, SQLiteDatabase.OPEN_READWRITE);
// SQLiteDatabase database = SQLiteDatabase.openDatabase(dbPath, null,SQLiteDatabase.OPEN_READWRITE);
String insertSql = "INSERT INTO SearchIndex VALUES (?, ?, ?, ?, ?, ?, ?)";
String deleteSql = "delete from SearchIndex where (StaffID=? or StaffID=?)";
database.beginTransaction();
SearchIndex tempIndex = null;
for (int i = 0; i < newIndexs.size(); i++) {
tempIndex = newIndexs.get(i);
database.execSQL(
deleteSql,
new String[] { tempIndex.S.toUpperCase(),
tempIndex.S.toLowerCase() });
database.execSQL(insertSql, new String[] { tempIndex.S,
tempIndex.N, tempIndex.J, tempIndex.P, tempIndex.L,
tempIndex.E});
}
database.setTransactionSuccessful();
database.endTransaction();
database.close();
}
每次的execSQL操作都是对数据库的一次事务
加上红色代码后,耗时变成了2秒