我一直在使用不同的方式将5000条记录插入到sqlite中,就像使用execSql
& insert
对象和已编译语句的SQLiteDatabase
方法。在所有情况下,插入(实际插入或替换)都是在单个事务中完成的。
使用编译语句时,5000条记录的平均插入时间约为3000毫秒。在insert()方法的情况下,平均时间在4500毫秒左右徘徊,对于execSql(),它大约是5000毫秒。
我期待sqlite快得多。在official website中,据说台式计算机平均每秒可处理50,000次插入(在事务中)。尽管我使用的测试设备并不是特别强大的(Galaxy S3 mini),但我预计SSD存储可以抵消任何缺点并提供每秒约20,000个插入。唉!!似乎并非如此。
我做错了什么,或者这是可以从移动设备中获得的最大性能?
编辑1
所有记录都有14列,它们是文本和文本的混合。数字(大多数是uuids或url)
答案 0 :(得分:-1)
如果我没记错的话,插入操作需要花费很多时间。 也许尝试并发数据库事务并不是一个糟糕的选择。这就是我之前写的:
db.beginTransaction();
while (...) {
db.execSQL(...));
}
db.setTransactionSuccessful();
db.endTransaction();