数据库有一种机制: 一些程序启动就需要查询的表,和一些被频繁访问的表。比如:
m_ope_d
m_product_d
m_eqid_d
.
.
.
等
可以考虑将这些数据量不大但经常使用的的表缓存到内存当中。
做法有两种:
1、把这些基础数据存在Redis里面。每次用的时候从redis查,效率很高。但是有一个缺点,update的数据不能及时同步到redis中。
2、把这些hot data放在GP的内存中。
预热功能。使用pg_prewarm函数,方便的将数据缓存至内存中。
这个功能不是自带的,是存在在扩展包中,所以要使用前需要先添加扩展。
pg_prewarm(regclass, mode text default 'buffer', fork text default 'main', first_block int8 default null, last_block int8 default null) RETURNS int8
第一个参数是预热的relation。
第二个参数是要使用预热的方法
第三个参数是relation fork被预热
第四个参数是预热的第一个块号
第五个参数是预热的最后一个块号
返回值是prewarm块的数量。