gpt4 book ai didi

大量插入的 SQLite 批量提交与一次性提交

转载 作者:行者123 更新时间:2023-12-03 17:01:22 25 4
gpt4 key购买 nike

我需要将大量(约 10-40 百万行)庞大的数据集转储到 SQLite 数据库中。对每 n 次插入(n 可能是 50,000、100,000 等)执行一次提交与仅在插入整整 4000 万行后执行一次提交相比是否有优势.

显然,理论上单次提交是最快的方式。但是批量提交有优势吗?在我的例子中,要么所有数据都被插入,要么没有被插入。在提交之前在 SQLite 中进行大量插入是否有任何危险(即我是否需要为 sqlite 提供更大的磁盘空间,因为它需要使用更大的临时文件?)?

我正在使用 Perl DBI 插入数据。

最佳答案

我通过使用以下东西获得了一些性能改进:

设置 PRAGMA synchronous = OFF 这可以防止 SQLite 引擎等待操作系统级写入完成。

set PRAGMA journal_mode = MEMORY 这告诉 SQLite 引擎将日志存储在 RAM 而不是磁盘中,唯一的缺点是在操作系统崩溃或电源故障时数据库无法恢复.

接下来,在所有插入之后创建索引。此外,您可以在每 100,000 条记录后发出一次提交。

关于大量插入的 SQLite 批量提交与一次性提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54984272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com