このトピックでは、コールドストレージでデータをプリフェッチする方法について説明します。
背景情報
コールドストレージ内のデータを初めてクエリすると、多くの場合、かなりの遅延が発生します。 この問題を軽減するには、永続キャッシュ (階層ストレージ内のディスク) にデータをプリフェッチします。 PolarDB for PostgreSQL は、コールドストレージ内のデータをプリフェッチするためのpolar_osfs_prewarm関数を提供します。
拡張機能の作成
CREATE EXTENSION IF NOT EXISTS polar_osfs_toolkit;手順
-- Prefetch a whole table.
select polar_osfs_prewarm('table_name');
-- Prefetch data within a specified range. first_blk: specifies the number of the start block. last_blk: specifies the number of the end block.
select polar_osfs_prewarm('table_name', first_blk, last_blk);説明
コールドストアされたテーブルのサイズがキャッシュ容量を超えると、キャッシュがいっぱいになるまで順番に読み込まれ、プリフェッチされます。
キャッシュ比率を上げるには、コンソールで
polar_smgrcache_sizeパラメーター値を大きくします。 調整はすぐに有効になり、データベースを再起動する必要はありません。