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 方法,最好使这些方法同步以避免锁定和获取异常。
在我的 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 方法,最好使这些方法同步以避免锁定和获取异常。