【问题标题】:slow sqlite insert using the jdbc drivers in java使用 java 中的 jdbc 驱动程序进行缓慢的 sqlite 插入
【发布时间】:2010-11-15 06:54:03
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java sqlite jdbc performance


    【解决方案1】:

    您的查询是否已自动提交?这可以解释为什么花了这么长时间。尝试将它们包装在 begin / end 中,这样它就不必为每次插入都执行完整的提交。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-08
        • 2017-10-24
        • 1970-01-01
        • 2015-02-02
        • 1970-01-01
        • 1970-01-01
        • 2021-07-13
        • 2015-11-06
        相关资源
        最近更新 更多