关于java:插入Sqlite很慢

Inserting to Sqlite is slow

本问题已经有最佳答案,请猛点这里访问。

我对数据库不熟悉。

我准备在sqlite数据库中插入22000个单词,但要花很长时间才能完成

1
2
3
4
for (int i=0;i<s.size();i++){              
    String sql ="INSERT INTO WORD (word) VALUES ("+"'"+s.get(i)+"'"+");";
    statement.executeUpdate(sql);
}

表名为word,字段名为word(为String)这是一个arrylist,s.get(i)返回一个字符串…我已建立连接并尝试更新桌子。

速度很慢。我做错什么了?


它很慢,因为您正在向数据库发出22000个查询。您应该批量插入。这样可以解决问题。即使一次插入需要10毫秒,总时间也像3.5分钟!!

批数为2的简单插入查询如下所示

1
"INSERT INTO WORD (word) VALUES ("+"'"+s.get(i)+"'"+"), ("+"'"+s.get(i+1)+"'"+");";

这将把时间减少一半。现在,您必须通过编程插入更多这些值。