繁体   English   中英

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

[英]slow sqlite insert using the jdbc drivers in java

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

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

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

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

您是否自动提交了查询? 这可以解释为什么花了这么长时间。 尝试将它们包装在开头/结尾,这样就不必为每个插件执行完整的提交。

此页面介绍了开始/结束事务,而FAQ则涉及插入/自动提交。

如果要进一步优化,可以考虑将插入查询一起批处理。 因此,您可以将1000万个插入更改为1000个批次的1000个插入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM