我正在尝试在大型数据库上运行查询而不终止与服务器的连接。
我在具有 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。没有一个起作用,性能大致相同。 …