最近在使用sqlite时发现一个问题,使用工具类插入数据时处理速度非常慢,本地测试数据大概18000条,插入时间将近半小时,平均每秒处理10条数据,优化后处理时间缩短到2秒以内。
优化方案:批量插入数据前关闭自动提交,所有脚本执行完毕后程序进行提交
public static void main( String args[] )
{
Connection c = null;
Statement stmt = null;
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:test.db");
//关闭自动提交
c.setAutoCommit(false);
stmt = c.createStatement();
String sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " +
"VALUES (1, 'Paul', 32, 'California', 20000.00 );";
stmt.executeUpdate(sql);
stmt.close();
//执行完所有脚本后手动提交
c.commit();
c.close();
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
}
参考资料
https://www.runoob.com/sqlite/sqlite-java.html
https://www.cnblogs.com/rainbowzc/p/6444389.html
https://blog.csdn.net/weixin_39453292/article/details/78811012