我有一个从服务中获取数据然后将其插入表中的过程。
当我在本地运行时,
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
非常感谢任何建议
答案 0 :(得分:0)
因此速度问题与代码或postgres配置无关 - 这是我的本地机器在SSD上运行而其他服务器不是.. 因此,虽然它们是更强大的机器,但执行28000次单次写入意味着28000次刷新到磁盘。 我通过批量插入解决了这个问题。差异是不可思议的。