在我的应用程序中,第一次启动时,我从网上下载了一个预先填充的数据库。(相当快)
并且每 x 次,我需要更新数据库中的一个表。我不需要旧条目,所以我可以删除它们。
这是我所做的:我删除了我的表的所有内容。然后我从网上得到一个包含我的数据的 csv 文件,我使用 Statement(优化)进行大量插入......但是,这需要几分钟(数千行)。
所以,我想知道,既然我不需要旧条目,那么删除表格并从网络导入新条目怎么样?这样,我会避免插入,它应该更快。
那可能吗?
编辑:
这是我的代码,如果可以优化,请纠正我:
int size = 5;
SQLiteStatement statement = myDB.compileStatement("insert into " + TABLE + " values(?, ?, ?, ?, ?, ?)");
String data[];
String line = null;
int size = 5;
//...
//some code
//...
myDB.beginTransaction();
while((line = bufferedReader.readLine()) != null) {
data = line.replaceAll("'", "''").split(",", -1);
statement.clearBindings();
for(int i = 0; i < size; i++) {
statement.bindString(i + 1, data[i]);
}
statement.bindString(size + 1, deadline);
statement.executeInsert();
}
myDB.setTransactionSuccessful();
myDB.endTransaction();
只是为了澄清,我不想删除我的数据库,因为我想保留我的数据库中的所有其他表,这就是为什么我问是否可以只将一个表导入(和替换)到数据库中其他表。