数据库表存在内存中

本文探讨了将频繁访问的小型数据库表缓存到内存以提高效率的方法,包括使用Redis和Greenplum的预热功能。通过pg_prewarm函数进行预热,但要注意数据更新同步问题和预热时机,以防止缓存驱逐。实验展示了在PG 10.1环境下,如何创建并使用pg_prewarm扩展来观察内存变化。
摘要由CSDN通过智能技术生成

数据库有一种机制: 一些程序启动就需要查询的表,和一些被频繁访问的表。比如:

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块的数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MyySophia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值