PostgreSQL之FSM与VM
我们都知道,postgresql的base目录是存储整体数据的目录,而base 里面就是以数据库的OID为名字的目录,目录里面全是这个数据库里面的表及相关文件。
select datname ,oid from pg_database ;
我们查询某张表的存储位置
select pg_relation_filepath('table1');
---
postgres=# select pg_relation_filepath('table1');
pg_relation_filepath
----------------------
base/12723/24765
(1 row)
查看该表对应的存储文件
可以看到有后缀为“_fsm”或“_vm”命名的文件
空闲空间映射(FSM)
select * from pg_available_extensions where name like 'pg_free%';
---
postgres=# select * from pg_available_extensions where name like 'pg_free%';
name | default_version | installed_version | comment
-----------------+-----------------+-------------------+----------------------------------
pg_freespacemap | 1.2 | 1.2 | examine the free space map (FSM)
(1 row)
查看某张表的fsm
select * from pg_freespace('table1');
---
postgres=# select * from pg_freespace('table1');
blkno | avail
-------+-------
0 | 8128
(1 row)
需要注意:FSM文件是执行VACUUM操作时,或者是为了插入行而第一次查询FSM文件时才会创建;
可见性映射(VM)
create extension pg_visibility ;
select pg_visibility_map('table1'); --- postgres=# select pg_visibility_map('table1'); pg_visibility_map ------------------- (0,f,f) (1,t,f) (2,t,f) (3,t,f) (4,f,f) (5 rows)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了