spring将数据从应用程序(Java)导入临时表的最快方法是什么?
我正在用Java、Spring和PostgreSQL开发一个应用程序。我使用SpringJDBC作为数据库层
在我的Java应用程序中,大约有10.000行需要插入到临时表中。最快的进口方式是什么
我已经试过了:
create temporary table my_table on commit drop;
with data as (values (...), (...), ...) -- all 10.000 rows enumerated
insert into my_table select * from data;
但是这失败了,因为查询变得太大而无法解析
我应该只发送较小的批,还是有更聪明的方法将数据流式传输到数据库
更新
我在做什么:
在数据库中,有一个表,可以说是“外部实体”。每隔几个小时,我就会得到一个更新(通过ActiveMQ代理)和完整的当前实体集。此集合需要在我的数据库中。我做了以下工作:
- 插入到临时表中
- 将新实体从临时表复制到实际表
- 从实际表中删除旧实体
- 更新实际表中更改的实体
我不能简单地截断我的实际表并直接插入到实际表中,因为对该表的外部约束和该表上的触发器。换句话说,我只是反映了实际的变化
# 1 楼答案
尝试使用
copy from stdin
。这将是最聪明和最快的方式把10万排http://pgpen.blogspot.ie/2013/05/using-copy-in-your-jdbc-code.html