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(为
速度很慢。我做错什么了?
它很慢,因为您正在向数据库发出22000个查询。您应该批量插入。这样可以解决问题。即使一次插入需要10毫秒,总时间也像3.5分钟!!
批数为2的简单插入查询如下所示
1 | "INSERT INTO WORD (word) VALUES ("+"'"+s.get(i)+"'"+"), ("+"'"+s.get(i+1)+"'"+");"; |
这将把时间减少一半。现在,您必须通过编程插入更多这些值。