如何将冷存数据进行预热

本文介绍将冷存数据进行预热的最佳实践。

场景描述

冷存中的数据首次查询时延迟会比较高,可以提前预热将其加载到持久化缓存(分层存储中的云盘层),可以起到查询加速的效果。PolarDB PostgreSQL版(兼容Oracle)提供了polar_osfs_prewarm函数,支持将冷存数据进行预热。

创建扩展

CREATE EXTENSION IF NOT EXISTS polar_osfs_toolkit;

操作步骤

-- 全表预热
select polar_osfs_prewarm('table_name');

-- 预热指定范围内的数据, first_blk:预热的起始块号,last_blk:预热的终止块号
select  polar_osfs_prewarm('table_name', first_blk, last_blk);
说明
  • 当冷存对象实际占用的存储比缓存空间大时,会顺序读取冷存表直至写满缓存空间。

  • 如果希望增加缓存比例,可通过控制台界面调大polar_smgrcache_size参数,调整完后立即生效,无需重启数据库。