星期一, 十月 27, 2008

如何提高SQLITE JDBC大批量插入数据的速度?

应为每一个Insert into操作默认都需要一个事物,所以通过显示的声明一个事物,可以大大提高数据插入的时间。
类似语句如下:

stmt.execute("BEGIN");
for(int i=0;i<commands.length;i++)
{
stmt.addBatch(commands[i]);
}
stmt.executeBatch();
stmt.execute("end");

曾经大约800数据,使用默认方法插入,大概需要141秒,而采用新方法后,使用纯Java的JDBC
速度提高到4秒,而使用JNI的JDBC,速度提高到几乎可以忽略不计的地步。

Very nice.!!!