使用Perl API使SQlite3插入更快

kai*_*h19 4 sqlite perl

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

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

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

请帮忙.

Joh*_*usa 9

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

PRAGMA synchronous = OFF
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅SQLite文档.

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

  • 还有一个足够新的SQLite,`PRAGMA journal_mode = WAL`(如果你真的不关心数据完整性,甚至`= OFF`) (2认同)

Ili*_*ion 5

确保使用预准备语句,因此不必分析每个插入.还可以尝试将insert语句分组,方法是使用Begin ... Commit ,如本FAQ中所述.