→ ssccg: insert into XXXX values (…), (…), (…) … 04/20 17:16
→ ssccg: 要sqlite 3.7.11(通常是android 4.1)以上 04/20 17:17
→ ssccg: 应该有长度限制但是我不知道是多少,你可以例如一次一千笔 04/20 18:42
→ joedenkidd: insert into table(...,...,...) select * from xxx 04/20 21:07
→ joedenkidd: 这样子试看看吧!不知道可不可行.... 04/20 21:07
要注意这种方式 Sqlite 有限制一次最多只能写入 500 笔。
参考:http://www.sqlite.org/limits.html#max_compound_select
→ passli: 查询 bulk insert 04/21 00:35
通常这种需求就 beginTransaction 下去开始一直写就好了。
可以考虑用 prepared statement 再帮你加速,不需要每次 compile SQL statement。
可以参考看看这篇:
https://www.codeofaninja.com/2013/12/android-sqlite-transaction-tutorial.html
虽然我不知道你的需求和情况,不过如果…
- 资料不会变动,可以考虑直接先产生好 sqlite db 预载在程式内
- 资料比较长时间才变动一次,可以考虑 Server 预先产生好 sqlite db
再丢到网络空间去下载?例如 AWS S3 之类的,还可以用 CDN 帮你加速。
通常是先想想看有没有办法不要一直做这种一直大量写入的事情,
逼不得已就是有这种需求才来想怎么加速写入。