gpt4 book ai didi

java - SQLiteDatabase.Insert() 或 SQLiteDatabase.execSQL() 在 Android 上哪个更快?

转载 作者:搜寻专家 更新时间:2023-11-01 09:07:48 26 4
gpt4 key购买 nike

您好,我想知道在 Android 上哪种方法更快。

我有一个处理数千行的循环,我认为 SQLiteDatabase.insert() 方法会影响性能。

在插入方法中,我放置了一个带有 contentvalues 的参数,我认为在后台该方法必须有一个过程来检查每个 contentvalue 并构建查询。

execSQL 方法中,我将整个查询作为参数,我认为该方法不必执行那么多操作。

我不知道我是否正确,我认为 execSQL 比插入大量数据要好,但我不确定...

最佳答案

好吧,我试过了,它们之间有一点不同……execSQL 更快,但很难注意到。

但是,我真正的问题是我没有使用交易。由于 sqlite 没有服务器来控制对数据的访问,sqlite 必须为您执行的每个插入关闭并重新打开 phisycal 文件。所以如果你在一个循环中有一千个插入并且它没有事务,它将执行一千个事务。在我的测试中,一千次插入在不使用事务的情况下持续了 11 秒,而在使用事务的情况下仅持续了 1 秒。

关于java - SQLiteDatabase.Insert() 或 SQLiteDatabase.execSQL() 在 Android 上哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com