gpt4 book ai didi

Android SQLite 数据库 : slow insertion

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:04 24 4
gpt4 key购买 nike

我需要解析一个相当大的 XML 文件(在大约一百 KB 和几百 KB 之间变化),我正在使用 Xml#parse(String, ContentHandler) 进行解析。我目前正在使用一个 152KB 的文件对此进行测试。

在解析期间,我还使用类似于以下的调用将数据插入到 SQLite 数据库中:getWritableDatabase().insert(TABLE_NAME, "_id", values)。对于 152KB 的测试文件(归结为插入大约 200 行),所有这些加起来大约需要 80 秒。

当我注释掉所有插入语句(但保留其他一切,例如创建 ContentValues 等)时,同一个文件只需要 23 秒。

数据库操作有这么大的开销正常吗?我能做些什么吗?

最佳答案

你应该做批量插入。

伪代码:

db.beginTransaction();
for (entry : listOfEntries) {
db.insert(entry);
}
db.setTransactionSuccessful();
db.endTransaction();

这极大地提高了我的应用程序中的插入速度。

更新:
@Yuku 提供了一篇非常有趣的博文:Android using inserthelper for faster insertions into sqlite database

关于Android SQLite 数据库 : slow insertion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41556675/

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