插入Sqlite很慢

时间:2014-11-08 15:36:11

标签: java sqlite sql-insert mysql-slow-query-log

我是数据库的新手。

我想将一个22000字插入一个sqlite数据库,但它需要永远完成

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)返回一个字符串......我已建立连接并尝试更新 桌子。

这很慢。我做错了什么?

1 个答案:

答案 0 :(得分:1)

它很慢,因为你向数据库发出22000个查询。您应该批量插入。这将解决问题。即使单个插入需要10ms,总时间也需要3.5分钟!!

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

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

这会将时间缩短一半。现在,您必须以编程方式插入更多这些值。