文档中心MogDBMogDB StackUqbar
v2.1

文档:v2.1

支持的版本:

其他版本:

pg_prewarm

pg_prewarm简介

pg_prewarm模块提供一种方便的方法把关系数据载入到操作系统缓冲区缓存或者MogDB缓冲区缓存。


pg_prewarm安装

请参见gs_install_plugings_install_plugin_local


pg_prewarm加载模式

  • mode:加载模式,可选项有“prefetch”、“read”、“buffer”,默认为“buffer”
  • prefetch:异步地将数据预加载到操作系统缓存
  • read:最终结果跟prefetch一样,但它是同步方式,支持所有平台
  • buffer:将数据预加载到数据库缓存

pg_prewarm创建及使用

  1. 创建pg_prewarm。

    create extension pg_prewarm; 
  2. 创建测试表。

    create table test_pre (id int4,name character varying(64),creat_time timestamp(6) without time zone); 
  3. 插入数据。

    insert into test_pre select generate_series(1,100000),generate_series(1,100000)||  '_pre',clock_timestamp(); 
  4. 查看数据表大小。

    mogdb=# select pg_size_pretty(pg_relation_size('test_pre'));
    pg_size_pretty
    ----------------
    5136 kB
    (1 row)
  5. 加载数据到数据库缓存。这里可以看到pg_prewarm把所有数据分为了642块。

    mogdb=# select pg_prewarm('test_pre','buffer');
     pg_prewarm
    ------------
         642
    (1 row)
  6. 查块大小。

    mogdb=# select current_setting('block_size');
     current_setting
    -----------------
    8192
    (1 row)

    MogDB默认每个数据块的大小为8KB。

    mogdb=# select 642*8; 
     ?column?
    ----------
      5136
    (1 row)
Copyright © 2011-2024 www.enmotech.com All rights reserved.