pg_prewarm数据预加载。
可能有人比较疑惑:执行1次select * from 不就可以将表的数据读入shared buffer和OS cache而实现预热了吗?岂不是比做这样一个插件更简单?实际上,对于较大的表(大小超过shared buff的1/4),进行全表扫描时,PG认为没必要为这种操作使用所有shared buffer,只会让其使用很少的一部分buffer,一般只有几百K,详细描述可以参见关于BAS_BULKREAD策略的代码和README)。所以,预热大表是不能用一个查询直接实现的,而pg_prewarm正是在这方面大大方便了用户。
特别大的表使用select *from是不能将数据加载到内存的,数据在os还是shared_buffers效果差不多。