Android sqlite和多个查询
为了填充我的数据库,我有一些类似的循环:Android sqlite和多个查询,android,sqlite,query-optimization,Android,Sqlite,Query Optimization,为了填充我的数据库,我有一些类似的循环: for (int i=0;i<something;++i){ myDatabase.insert(...); } String queries=""; for (int i=0;i<something;++i){ queries += "my query;"; } myDatabse.execSQL(queries); for(int i=0;i您可以尝试用“BEGIN”和“COMMIT”事务将这些插入行括起来。SQLite将
for (int i=0;i<something;++i){
myDatabase.insert(...);
}
String queries="";
for (int i=0;i<something;++i){
queries += "my query;";
}
myDatabse.execSQL(queries);
for(int i=0;i您可以尝试用“BEGIN”和“COMMIT”事务将这些插入行括起来。SQLite将每个DML和DDL调用包装在事务块中,创建事务日志,例如,在插入之后,它将删除它并再次重复(对于您的第一个代码示例)
当您手动执行TCL命令时,SQLite数据库将离开自动事务模式,并将按照您的要求执行。您是否尝试过在一条语句中插入多行?类似如下:
INSERT INTO table (c1, c2, c3) VALUES
(1, 2, 3),
(4, 5, 6),
....
您也可以尝试将插入内容包装在一个事务中。将所有工作放在一个事务中可以避免每次插入锁定的开销。您应该通过一个事务执行所有请求:
db.beginTransaction();
try {
...
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
由于只使用一个事务,运行时已被7除,我将再次尝试此操作以减少它;)