Java / Postgres SQL导入速度的差异

时间:2017-07-05 09:23:48

标签: java sql postgresql ubuntu

我有一个从服务中获取数据然后将其插入表中的过程。

当我在本地运行时,

2017-07-05 10:59:51 - 获得5393名残疾人 - 7011ms

2017-07-05 10:59:54 - 取得440封 - 2906毫秒

2017-07-05 11:00:03 - 获得20778次反弹 - 8206ms

2017-07-05 11:00:09 - 将数据库插入数据库 - 5705ms

2017-07-05 11:00:09 - 已插入已阻止数据库 - 512ms

2017-07-05 11:00:29 - 已插入退回数据库 - 19810ms

当我在生产中运行时

2017-07-05 11:10:31 - 获得5392名残疾人 - 5126ms

2017-07-05 11:10:34 - 获得440封 - 2421毫秒

2017-07-05 11:10:50 - 获得20778次反弹 - 16105ms

2017-07-05 11:11:10 - 将数据库插入数据库 - 19795ms

2017-07-05 11:11:12 - 已插入阻止数据库 - 1551ms

2017-07-05 11:12:22 - 已插入退回数据库 - 70770ms

慢了近4倍..

生产是Intel(R)Xeon(R)CPU E5-2650 v2 @ 2.60GHz

本地是Core i7-2630QM @ 2.00GHZ

所以我真的不明白为什么会有这样的差异。

我不确定是否可以进行一些postgres调整?

这是我的插入方法: http://puu.sh/wC4vT/44d3516df1.png 在这里,我从池中获取每个插入的连接,

我以前重复使用相同的插件连接,这在本地工作效率非常高 http://puu.sh/wC4xD/7693ad63d3.png

非常感谢任何建议

1 个答案:

答案 0 :(得分:0)

因此速度问题与代码或postgres配置无关 - 这是我的本地机器在SSD上运行而其他服务器不是.. 因此,虽然它们是更强大的机器,但执行28000次单次写入意味着28000次刷新到磁盘。 我通过批量插入解决了这个问题。差异是不可思议的。

http://puu.sh/wHH0i/f3250caa03.png