Я анализирую данные из 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;
}
Есть ли хороший способ ее оптимизации?Большое спасибо!