我正在尝试在大型数据库上运行查询而不终止与服务器的连接。
我在具有 16GB 内存和大约 40GB 可用磁盘空间的 Mac 上使用 Postgres 12.1。根据数据,数据库为 78GB pg_database_size
,最大表为 20GB pg_total_relation_size
。
无论我运行哪个非工作查询,我(从日志中)得到的错误是:
server process (PID xxx) was terminated by signal 9: Killed: 9
Run Code Online (Sandbox Code Playgroud)
在 VS 代码中,错误是"lost connection to server"
.
两个不起作用的例子是:
UPDATE table
SET column = NULL
WHERE column = 0;
Run Code Online (Sandbox Code Playgroud)
select columnA
from table1
where columnA NOT IN (
select columnB
from table2
);
Run Code Online (Sandbox Code Playgroud)
我可以通过添加 1,000,000 个来运行某些查询(例如上面的查询)LIMIT
。
我怀疑由于临时文件而导致磁盘不足,但在日志(带有log_temp_files = 0
)中,我看不到任何正在写入的临时文件。
我尝试增加和减少work_mem
, maintenance_work_mem
,shared_buffers
和temp_buffers
。没有一个起作用,性能大致相同。 …