国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > PostgreSQL > PostgreSQL怎么提前缓存数据

PostgreSQL怎么提前缓存数据

头像

月亮邮递员

2020-03-28 13:52:153258浏览 · 0收藏 · 0评论

PostgreSQL怎么提前缓存数据

预热功能,使用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块的数量。

预热方法有三种:

1、对操作系统发出异步prefetch请求

2、读取块的请求范围,但可能会较慢

3、缓冲区将请求的块范围(执行的查询)读入数据库缓冲区缓存中。

注意,使用这些方法中的任何一种,试图预热更多的块而不是缓存的操作系统——当使用预取或读取时,或使用PostgreSQL在使用缓冲器时可能会导致较低编号的块被释放,因为较高编号的块被读入。预热数据也没有对缓存驱逐的特殊?;?,因此其他系统活动可能会在读取后不久将新的预热块驱逐出去;反之,预热也可能从高速缓存中驱逐其他数据。由于这些原因,预热通常在启动时最有用,当缓存大部分为空时。

操作,实验环境:

CentOS 7 + PG 10.1

创建extension

mytest=# create extension pg_prewarm ;
CREATE EXTENSION

在这个实验中,我们需要借助pg_buffercache 来查看内存中的变化。

mytest=# create extension pg_buffercache ;
CREATE EXTENSION

我们重启一下pg

service postgresql-10 restart

查看内存信息

mytest=# select count(*) from pg_buffercache where relfilenode = (select relfilenode from pg_class where relname = 'test01');
count
-------
0
(1 row)
mytest=# select pg_prewarm('test01','buffer','main') ;
pg_prewarm
------------
2041
(1 row)
mytest=# select count(*) from pg_buffercache where relfilenode = (select relfilenode from pg_class where relname = 'test01');
count
-------
2041
(1 row)

说明表已经被缓存到内存中。

推荐:postgresql教程

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

办公室深深挺进女警小| WWW.17C嫩嫩草色视频蜜桃| 黑皮革之夜| 难哄电视剧免费版高清| 《訾花交换做爰》| 公车上双乳被两男人夹击电影 | 男同| 停电后我和公做了爱| 欧美精品一区| 欧美大片免费PPT| 《訾花交换做爰》| 老汉猛躁女人XXXXX88AV| 妈妈洗澡不把门关紧暗示什么| 1.《奶牛娘牧场》动漫| 乳腺增生| 男按摩师舌头伸进去了SPA漫画| 欧美-区二区三区| 汗汗画画免费阅读在线阅读| 小婕子太紧了太深了| 成品人和精品人的区别在哪里知乎| 9.1国外黄冈B站| 美女的胸怀| 跳抖胸舞| 免费观看已满十八岁电视剧75B..| 美女比基尼游泳图片视频| 成全视频高清免费观看捉妖记动漫 | 猛躁川大巴进入女人| 《喂奶人妻厨房HD》| 女上司| 《年轻朋友的妻子3》| 三人成虎| 《公与媳夫妇:交换》| 叶子湄| 性做爰全过程免费看| 双乳被四个男人吃奶H文| 打扑克| 女明星光溜溜图片视频素材| 《温柔的大姐姐》动漫免费观看| 芬太尼事件| 《医务室的小秘密》第一季免费观.. | 7777影院免费观看电视剧大全