postgresql - 如何使用 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。
解决方案
推荐阅读
- pyvmomi - pyvmomi perfManager - 获取所有统计信息
- react-native - 我们可以从我的应用程序中访问本地 Whatsapp 消息吗?
- json - 使用 vb.net 获取 json 值
- php - PHP 更新查询不起作用
- ios - ****重新声明无效
- gmail - 发现新 Gmail(浏览器版本)中的显示错误(空白列)
- android - 媒体播放器错误 (1, -5001)
- android - 离线 Firebase 数据库不工作
- f# - “a -> b -> (a -> b -> c) -> c” 应用两个参数是标准功能概念吗?
- php - 作曲家本身是由作曲家管理的吗?