我是新的Android开发人员,首先感谢所有帮助我每天的答案。 我的问题是: 我想使用一个sqlite来拥有一个包含数千行的数据库,但是插入这个行平均需要每行一秒:它太慢了; 我的数据库必须每天更新,所以我想压缩这个数据库,下载到一个文件夹中 我的申请(资产ou raws)。 Android sdk允许这个吗?我看了很多答案,但我一无所获。 谢谢大家。 (原谅我的英文)
答案 0 :(得分:1)
问题的解决方案是use transactions。您对SQLite说"BEGIN TRANSACTION"
,然后运行所有INSERT
,然后说"COMMIT TRANSACTION"
。这要快得多,因为除非已经启动了事务,否则SQLite会在单独的事务中运行每个查询(所谓的自动提交),并且为每个"COMMIT TRANSACTION"
执行INSERT
内部调用非常慢。
答案 1 :(得分:0)
不知道android部分,但是插入1s是不正常的。如果您要插入大量行,请在事务中执行此操作。
begin transaction;
insert into mytable values (...);
....
commit;
这比更多更快,而不是一次只执行一次插入。