首页 > 解决方案 > 如何使用 JDBC 加速从 PostgreSQL 的批量读取?

问题描述

我有一个功能需要从 PostgreSQL 数据库中读取数百万行。是的,这听起来像是一个 XY 问题,但数据已经在 Postgres 中,并且必须每天以无法在数据库中完成的方式批量处理。

在我的测试用例中,有 800 万行 JSON 格式占用了大约 10 GB 的空间。现在读取数据需要 10 多分钟。我通过发出select查询并使用ResultSet.next. 等效select count(*)几乎是即时的,并且行开始快速返回到 JDBC,因此几乎没有前期延迟。性能问题在于获取从 A 点到 B 点的行。请注意,我在copy (...) to stdout.

是否有任何技术/设置可以让数据更快地加载?还是我注定要失败,因为这是一个没有针对数据库进行优化的用例?


我们在 Amazon RDS 和 Java 8 上使用 Postgres Server 9.6.8。

标签: postgresqlperformancejdbc

解决方案


推荐阅读