我创建了一个向 MySql 数据库插入数百万个值的程序。我读到了批量插入,它将优化我的程序并使其更快,但是当我尝试这样做时,它以相同的方式工作。我没有将每个值插入数据库,而是每次将 500 个值保存在一个列表中,然后将它们插入一个大循环中,如下所示:
for(int i=0;i<500;i++)
{
insertData(list.get(i));
}
然后我删除列表中的所有值并再次开始收集 500 个值。它不应该更好地工作吗?
我的插入代码是:
public void insertToNameTable(String id,String name) throws SQLException
{
PreparedStatement ps=null;
ps= conn.prepareStatement("INSERT INTO NameTable values(?,?,?)",user.getId(),user.getName());
ps.setString(1,id);
ps.setString(2,name);
ps.setBoolean(3,false);
ps.executeUpdate();
}
我有一些问题:
1.为什么当我进行批量插入时它不能更快地工作?
2.每次我应该输入多少个值才能让它更快?(500,1000,10000)一起输入的值越多越好?
3.我将值插入数据库的方式是最好的方式吗?