我有一个查询,它提供了大约 14M 行(我不知道这一点)。当我使用 psql 运行查询时,我的 Fedora 机器死机了。另外,查询完成后,我无法再使用 Fedora,必须重新启动计算机。当我将标准输出重定向到文件时,Fedora 也冻结了。
那么我应该如何使用 psql 处理大型结果集?
psql默认情况下,在客户端内存中累积完整结果。对于所有基于 Postgres 的应用程序或驱动程序来说,这种行为很常见libpq。解决方案是游标 - 那么您只能从服务器获取 N 行。也可以使用游标psql。您可以通过设置变量来更改它FETCH_COUNT,然后它将使用批量检索大小的游标FETCH_COUNT。
postgres=# \设置 FETCH_COUNT 1000 postgres=# 从generate_series(1,100000)中选择*;-- 大查询
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |