有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java/Postgres SQL导入速度差异

我有一个进程,它从服务中获取数据,然后将其插入表中

当我在本地运行它时

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

2017-07-05 10:59:54-获取440个阻塞-2906ms

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个阻塞-2421ms

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

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

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

2017-07-05 11:12:22-插入的跳转到数据库-70770ms

它几乎慢了4倍

产品为英特尔(R)至强(R)CPU E5-2650 v2@2.60GHz

本地is核心i7-2630QM@2.00GHZ

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

我不确定是否有一些博士后调整我可以做

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

我以前对插入重新使用相同的连接,这在本地服务器上同样有效 http://puu.sh/wC4xD/7693ad63d3.png

任何建议都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    因此,速度问题与代码或postgres配置无关——这是因为我的本地机器运行在SSD上,而其他服务器则不是。。 所以,虽然它们是强大的机器,但进行28000次单次写入意味着28000次磁盘刷新。 我通过批量插入解决了这个问题。这种差异令人难以置信

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