在 PostgreSQL 文档中,据说整数数据类型可以存储在两字节、四字节或八字节的空间中。我的数据库中表的一列包含一个一字节整数值,我希望它以一字节数据类型存储。
我的数据库突然挂在一些连接许多表的查询上,我看到:
temporary file size exceeds temp_file_limit (1025563kB)
Run Code Online (Sandbox Code Playgroud)
可以在此处查看示例查询和查询计划:
http://www.sharecsv.com/s/a6333a7f610e049dd81ebcfc19a4c02f/temp_file_limit_exceeded.csv
此查询通常需要不到 100 毫秒,但在达到临时文件大小限制时会挂起。
当我跑步时:
SELECT temp_files AS "Temporary files", temp_bytes AS "Size of temporary files"
FROM pg_stat_database db;
Run Code Online (Sandbox Code Playgroud)
我懂了:
Temporary files Size of temporary files
---
22550 10651900248
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我能够解决更多问题。假设用户列出他们可以说 2 种语言 - 查询运行正常。然后他们编辑自己的个人资料,表示自己懂得 20 种语言。查询最终超出temp_file_limit并挂起。