所以我有两个200mb的JSON文件。第一个需要1.5个小时才能加载,第二个需要24个小时(由于没有通过控制台更新,因此没有任何线索还在继续,或者如果它冻结了,所以我停止了它)。
由于loaddata运行得不好,我编写了自己的脚本来加载数据,同时还输出最近保存到数据库中的内容,但我注意到脚本的速度(以及我的计算机)衰减的时间越长它去。所以我不得不停止脚本 - >重启我的电脑 - >在我离开的数据部分恢复,这比整个脚本运行要快。这是一个繁琐的过程,因为大约需要18个小时,我每4小时重新启动一次计算机,以便完全加载所有数据。
我想知道是否有更好的解决方案来加载大量数据?
编辑:我意识到有一个加载原始SQL的选项,所以我可以试试,虽然我需要刷新我的SQL。答案 0 :(得分:4)
当您加载大量数据时,编写自己的自定义脚本通常是最快的。一旦加载了它,就可以使用数据库导入/导出选项,这通常非常快(例如,pgdump
)。
但是,当您编写自己的脚本时,有两件事情会彻底加快速度:
begin
一个事务,然后事后commit
(重要的是,不要忘记提交;没有什么比花费三个小时导入数据,只是为了实现你忘了犯了它。)INSERT
语句。 ORM存在一些计算开销,绕过它会使事情变得更快。