android - Sqlite在android中是插入,删除,同步吗

标签 android android-sqlite sqliteopenhelper

在我的 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/

相关文章:

android - 无法从数据库中获取数据

android - SQLiteOpenHelper onCreate 运行两次?

java - 使用 ContentValues 将多条记录插入到 Sqlite 数据库中的两列中

Android: long => SQLiteDatabase => long , 精度丢失

java - AutoCompleteTextView NullPointerException

java - 如何通过查询方法(SQLiteDatabase.query)使用此查询?

android - 最低支持的Gradle版本是4.6

java - 自定义 listView 的问题 - ListView 为空

android - 谷歌地图不适用于派生 apk(已发布的应用程序)

java - 如何从 sqlite 获取数据,并使用 stackwidget 显示它?