在 Postgres 命令行客户端 psql 中,有没有办法判断查询是从磁盘还是从内存缓存运行?
最佳答案
查询永远不会“从磁盘”或“从缓存”运行。查询本身总是在内存中。
但是如果你的意思是你想知道数据是从共享缓冲区还是直接从文件系统中检索的,那么你可以使用
explain (analyze on, buffers on, verbose on)
select ....
然后执行计划将显示从共享缓冲区中提取的块数以及从文件系统中提取的块数。请注意,来自文件系统的“读取”实际上可能是从缓存返回的,并且文件系统管理自己的缓存(Postgres 依赖的东西)。
关于performance - 确定 PostgreSQL 查询是从磁盘还是从内存缓存运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12096937/