java sqlite插入很慢...... 我的代码就是这个
for(int i = 1 ; i <= list.size(); i++ ) {
query="INSERT OR REPLACE INTO highErrorProbabillityDB VALUES (?,?);";
prep = localError.prepareStatement(query);
prep.setString(1, list.get(i-1).get("ki"));
prep.setInt(2, Integer.parseInt(list.get(i-1).get("ccolor")));
prep.executeUpdate();
}
第一列是主键,平均而言,需要大约1到150毫秒的时间。
如何优化此代码?
答案 0 :(得分:2)
首先,您只能准备一次声明:
query="INSERT OR REPLACE INTO highErrorProbabillityDB VALUES (?,?);";
prep = localError.prepareStatement(query);
for(int i = 1 ; i <= list.size(); i++ ) {
prep.setString(1, list.get(i-1).get("ki"));
prep.setInt(2, Integer.parseInt(list.get(i-1).get("ccolor")));
prep.executeUpdate();
}
答案 1 :(得分:0)
如果你有SQLite版本3.7.11或更高版本,那么你可以像这样一次多次插入
INSERT OR REPLACE INTO highErrorProbabillityDB
VALUES (1,4),
(2,5),
(3,6),
...
这样你只需执行一次查询。