在我的 android 应用程序中,我正在执行 SQlite 数据库操作,如插入、删除、更新记录。 我想知道,如果我喜欢以下内容:
long t1 = System.currentTimeMillis();
for(i =0; i<N; i++)
{
insertRecord();
}
long t2 = System.currentTimeMillis();
t2-t1 是否等于在数据库中插入 N 条记录所花费的时间。 我的意思是插入同步或异步的调用。
最佳答案
如果你在一个事务中,只有在事务结束时才会真正写入和同步数据。
如果您没有使用显式事务,一切都发生在 insert()
调用中,您确实会测量您想要的。
但是,此类操作使用隐式事务运行,这使得它们相当慢(因为每个命令都有同步开销)。
当你在做几个相关的数据库操作时,你应该把它们全部放在一个事务中:
long t1 = System.currentTimeMillis();
db.beginTransaction();
try {
for(i =0; i<N; i++) {
insertRecord();
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
long t2 = System.currentTimeMillis();
关于android - Sqlite在android中是插入,删除,同步吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36620881/