Postgres pg_prewarm将表保存在缓冲区中,删除表后返回0



我按照本教程中概述的步骤使用pg_prewarm扩展在PostgreSQL中预热缓冲区缓存:

https://ismailyenigul.medium.com/pg-prewarm-extention-to-pre-warming-the-buffer-cache-in-postgresql-7e033b9a386d

我第一次运行它,我得到1作为结果:

mydb=> SELECT pg_prewarm('useraccount');
pg_prewarm 
------------
1

之后,我必须删除表并重新创建它。从那时起,当我运行相同的命令时,我总是得到0作为结果。我不确定如果这是预期的,或者如果我错过了什么?

mydb=> SELECT pg_prewarm('useraccount');
pg_prewarm 
------------
0

contrib/pg_prewarm/pg_prewarm.c中的函数注释说:

* [...] The
* return value is the number of blocks successfully prewarmed.

所以第一次,表中有1个块。删除并重新创建表后,它是空的,因此缓存0块。

最新更新