android 中的 Sqlite 插入,删除,同步吗

Are Sqlite Insert , Delete, Synchronous in android

在我的 android 应用程序中,我正在执行 SQlite 数据库操作,如插入、删除、更新记录。 我想知道,如果我喜欢以下内容:

long t1 = System.currentTimeMillis();
for(i =0; i<N; i++)
{
  insertRecord();
}
long t2 = System.currentTimeMillis();

t2-t1 是否等于在数据库中插入 N 条记录所花费的时间。 我的意思是插入同步或异步的调用。

这是同步插入,因为它一个接一个地插入,另一方面应该执行第一个插入才能执行第二个

您也可以使用 AsyncTask 来解决插入速度问题

如果你在一个事务中,只有在事务结束时才会真正写入和同步数据。

如果您不使用显式事务,一切都发生在 insert() 调用中,您确实会测量您想要的。 但是,此类操作 运行 带有隐式事务,这使得它们相当慢(因为每个命令都有同步开销)。

当你在做几个相关的数据库操作时,你应该把它们全部放在一个事务中:

long t1 = System.currentTimeMillis();

db.beginTransaction();
try {
    for(i =0; i<N; i++) {
        insertRecord();
    }
    db.setTransactionSuccessful();
} finally {
    db.endTransaction();
}

long t2 = System.currentTimeMillis();

如果您从多个地方调用这些 CRUD 方法,最好使这些方法同步以避免锁定和获取异常。