|
|
1
19
|
|
|
2
55
您想使用
请注意,此批量加载命令不是SQL,而是SQLite的自定义功能。因此,它的语法很奇怪,因为我们通过
在PostgreSQL中,等价物是
在MySQL中,它是
最后一件事:记住要小心
在执行之前,您应该明确地将分隔符设置为空格、制表符或逗号
|
|
|
3
33
我测试过一些 pragmas 在这里的答案中提出:
以下是我在交易中不同插入次数的数字:
增加批处理大小可以真正提高性能,而关闭日志、同步、获取独占锁只会带来微不足道的收益。约110k的点显示了随机背景负载如何影响数据库性能。
此外,值得一提的是
|
|
|
4
18
你也可以试试
tweaking a few parameters
以获得额外的速度。具体来说,你可能想要
|
|
|
5
9
|
|
|
6
5
首先:利用Sqlite3将其减少到2个SQL语句 Virtual table API 例如
这里的想法是,您实现一个C接口,读取源数据集并将其作为虚拟表呈现给SQlite,然后一次性从源表到目标表进行SQL复制。这听起来比实际更难,我用这种方式衡量了巨大的速度提升。 第二:利用这里提供的其他建议,即pragma设置和使用交易。 第三:也许可以看看是否可以删除目标表上的一些索引。这样,sqlite将为插入的每一行更新更少的索引 |
|
|
7
3
假设db是您的数据库指针。 |
|
|
8
2
一个好的折衷方案是在开始和结束之间包装好你的插件;结束;关键字即:
|
|
|
9
0
根据数据的大小和可用RAM的数量,将sqlite设置为使用全内存数据库而不是写入磁盘将获得最佳性能收益之一。
对于内存数据库,将NULL作为文件名参数传递给
(以上所有内容均摘自我对某问题的回答 separate sqlite-related question ) |
|
|
10
0
我发现这是一个很好的组合,适合一次性导入。
来源: http://erictheturtle.blogspot.be/2009/05/fastest-bulk-import-into-sqlite.html 一些附加信息: http://blog.quibb.org/2010/08/fast-bulk-inserts-into-sqlite/ |