→ 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 幫你加速。
通常是先想想看有沒有辦法不要一直做這種一直大量寫入的事情,
逼不得已就是有這種需求才來想怎麼加速寫入。