在java中使用jdbc驱动程序的慢速sqlite插入

在java中使用jdbc驱动程序的慢速sqlite插入

问题描述:

我刚刚将100万条记录插入到一​​个简单的5列sqlite表中。在java中使用jdbc驱动程序花了18个小时!我在python2.5中做了同样的事,花了不到一分钟。选择查询的速度似乎很好。我认为这是jdbc驱动程序的问题。在java中使用jdbc驱动程序的慢速sqlite插入

在java中是否有更快的sqlite3驱动程序?

插入大量行的速度对我的模式迁移脚本很重要,如果不需要,我宁愿不必使用外部脚本来执行迁移。

编辑:用connection.setAutoCommit(false)修复; 感谢Mark Rushakoff暗示我的解决方案:)

您的查询是否已自动提交?这可以解释为什么花了这么长时间。尝试将它们包装在开始/结束位置,以便它不必为每个插入操作完成提交。

This page解释开始/结束事务,而FAQ涉及插入/自动提交。

+0

这样做的窍门,谢谢! – 2009-07-30 01:28:25

如果你想进一步优化,你可以考虑一起批量插入查询。因此,您可以将1百万张插页更改为1000批次的1000张插页。