postgresql什么是FSM

本文介绍了PostgreSQL中的FSM(空闲空间映射)概念及其管理方式。FSM用于跟踪数据库中每个数据块的可用空间大小,自8.4版本起采用*_fsm文件记录自由空间。文中展示了如何使用pg_freespacemap扩展来检查FSM。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:瀚高PG实验室 (Highgo PG Lab)- 徐云鹤

postgresql什么是FSM?

FSM,全称Free Space Map,空闲空间映射。

作用:FSM管理的是relation对应的所有的Block,它记载着数据文件中每个数据块的可用空间的大小。

老版本中fsm是记录在共享缓冲区中,有两个与FSM相关的两个参数:

max_fsm_relations (integer)

max_fsm_pages (integer)

PostgreSQL8.4版本后,这两个参数被废弃,通过VACUUM发现的自由空间开始记录在*_fsm文件中。

可以通过pg_freespacemap模块来检查空闲空间映射(FSM)。

首先:

highgo=# create  EXTENSION pg_freespacemap;
CREATE EXTENSION

然后:

postgres=# SELECT * FROM pg_freespace('pg');
 blkno | avail 
-------+-------
     0 |     0
     1 |     0
     2 |     0
     3 |    32
     4 |   704
     5 |   704
     6 |   704
     7 |  1216
     8 |   704
     9 |   704
    10 |   704
    11 |   704
    12 |   704
    13 |   704
    14 |   704
    15 |   704
    16 |   704
    17 |   704
    18 |   704
    19 |  3648
(20 rows)

postgres=# SELECT * FROM pg_freespace('pg', 7);
 pg_freespace 
--------------
         1216
(1 row)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值