您的位置:首页 > 数据库

postgresql什么是FSM

2018-03-12 11:55 357 查看
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)
By 徐云鹤
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息