5

在 Postgres 命令行客户端 psql 中,有没有办法判断查询是从磁盘运行还是从内存缓存运行?

4

1 回答 1

8

查询永远不会“从磁盘”或“从缓存”运行。查询本身总是在内存中。

但是如果你的意思是你想知道数据是从共享缓冲区还是直接从文件系统中检索的,那么你可以使用

explain (analyze on, buffers on, verbose on) 
select ....

然后,执行计划将显示从共享缓冲区中提取了多少块以及从文件系统中提取了多少块。请注意,文件系统的“读取”实际上可能是从缓存返回的,并且文件系统管理自己的缓存(Postgres 依赖的东西)。

于 2012-08-23T17:42:52.040 回答