gpt4 book ai didi

java - 加快数据库插入速度

转载 作者:行者123 更新时间:2023-12-01 19:08:55 25 4
gpt4 key购买 nike

我从 XML 解析数据并将其插入到我的数据库中。但这些最多 1000 个查询必须在应用程序启动之前完成。
因为我必须使用 FTS3 搜索,所以插入速度明显减慢。

在添加 FTS3 搜索之前,我使用了 BLOB。这速度相当快。我怎样才能加快速度?

我使用这个 FTS3 表:

db.execSQL("CREATE VIRTUAL TABLE " + TABLE_FTS + " USING fts3(" + COL_ID + ", " + COL_KEY_ID + ", " + COL_KEY_NAME + ", "
+ COL_KEY_WEBURL + ", " + COL_KEY_MAINURL + ", " + COL_KEY_LOGO + " " + ");");

我用这个方法插入字符串:

      int init = 0;
for(int t = init; t < arr.length; t++){
Log.i(TAG, "arr["+t+"] = " + arr[t].trim());

if(r == 1) {
database.execSQL("INSERT INTO table (id) VALUES ('" + arr[t].trim() + "')");
id_save = arr[t].trim();
r++;
}else if(r == 2) {
database.execSQL("UPDATE table SET name='" + arr[t].trim() + "' WHERE id='" + id_save + "'");
name_save = arr[t].trim();
r++;
}else if(r == 3) {
database.execSQL("UPDATE table SET weburl='" + arr[t].trim() + "' WHERE id='" + id_save + "' AND name='" + name_save + "'");
r++;
}else if(r == 4) {
database.execSQL("UPDATE tables SET mainurl='" + arr[t].trim() + "' WHERE id='" + id_save + "' AND name='" + name_save + "'");
r++;
}else if(r == 5) {
database.execSQL("UPDATE table SET logo='" + arr[t].trim() + "' WHERE id='" + id_save + "' AND name='" + name_save + "'");
r = 1;
}

有什么好的优化方法吗?非常感谢!

最佳答案

您需要批量插入的速度。

使用DatabaseUtils.InsertHelper 而不是 SQLiteDatabase.insert

关于java - 加快数据库插入速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050605/

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