使用Perl API使SQlite3插入更快

时间:2012-01-16 15:07:23

标签: perl sqlite

我是DBD :: SQLite,使用perl在SQlite3 db中插入一些数据。

我注意到插入(插入35k行)需要花费很多时间。 有没有办法让它更快。

优化对我而言非常重要,而非数据同步。 如何使用perl优化它?

请帮忙。

4 个答案:

答案 0 :(得分:9)

在进行插入之前尝试执行此语句:

PRAGMA synchronous = OFF

请参阅more information的SQLite文档。

此外,正如Ilion所说,尝试prepare()语句只需一次,然后使用不同的绑定值重新execute()多次。对于某些N值,关闭AutoCommit然后显式提交仅插入每N行也可能有所帮助。

答案 1 :(得分:5)

确保使用预准备语句,因此无需分析每个插入内容。还可以尝试使用Begin ... Commit as described in this FAQ

对insert语句进行分组

答案 2 :(得分:1)

确保您的连接设置为AutoCommit => 0。 在每批插入后明确提交,并进行保证。

答案 3 :(得分:0)

除了完全关闭自动提交之外,您还可以尝试使用大型事务。通常会对单行插入产生重大影响。