我的数据库大小正在增长到41GB,但是当我创建备份时它变成2.4 / 2.5GB,为什么会有这么大的差异?
我已经执行了一些真空,重新索引等操作,但是大小仍然没有缩小,并且它显示了19 GB的临时文件,但是当我签入C:\Program Files\PostgreSQL\10\data\base\pgsql_tmp
时该文件夹为空。
如何删除这些临时文件? 是否可以减小数据库大小?
编辑
查询以获取临时文件
SELECT temp_files AS "Temporary files"
, temp_bytes AS "Size of temporary files"
FROM pg_stat_database db;
答案 0 :(得分:0)
pg_stat_database
中的值自服务器启动以来是累积的,因此它不是当前使用的字节数。这是自重置统计信息以来使用的字节数。
因为这是一个累积数,所以除非您重置统计信息,否则它会不断增加并且永远不会缩小。
您可以使用
重置那些统计信息(以超级用户身份)select pg_stat_reset();
似乎您的查询确实使用了许多临时文件和临时空间。这可能表明您没有给Postgres足够的内存(例如work_mem
或temp_buffers
),但这是另一个问题。
这些临时文件也不是数据库转储的一部分,因为它们仅在查询执行期间使用。