postgresql_internals-14 记录
创始人
2024-03-20 06:18:05
0

梳理一下之前理解不太清楚的知识点,重点内容可能会再拆出来单独研究。

原书链接:Index of /

一、 数据组织

1. pg系统库

  • template0:用于从逻辑备份还原,或创建不同字符集的数据库,不可以修改
  • template1:真正的模板库,修改之后创建其他业务库时会以其为模板
  • postgres:常规db,可以自行决定是否用作业务库(一般不用)

2. 系统表(system catalog

  • 均以pg_开头
  • 部分系统表不属于任何数据库,但所有数据库均可访问它们

3. Schema

命名空间,在逻辑上相当于DB中的一个目录。

pg自带以下schema:

  • public:若无特殊设置,则为用户对象默认schema
  • pg_catalog:系统表的schema
  • information_schema:系统表的替代视图
  • pg_toast:用于toast对象
  • pg_temp:用于临时表

       search_path变量用于设置搜索路径,pg_catalog和pg_temp 这两个schema总是包含在其中(因此所有库中都能查到系统表和临时表),但默认不显示。

4. 表空间

       如果说schema是逻辑上的目录,表空间则是物理上一个真正的目录,它与DB可以是多对多的关系。主要用于冷热数据分层,可以将旧数据放在单独表空间并移到低性能磁盘。

  • pg_default:默认表空间,位于$PGDATA/base目录
  • pg_global:存储共享系统表(system catalog)的表空间,位于$PGDATA/global目录
  • 当用户创建表空间时,pg会自动在$PGDATA下创建同名目录,可以移到其他位置。

5. 数据文件与分支

  • 主文件:存储实际数据,以一串数字为文件名(对应pg_class. relfilenode字段,注意不一定是oid),默认如果超过1G,则为扩展出xxx.1,xxx.2这种文件
  • 空闲空间映射文件:fsm文件,保存页中可用空间的映射,在新数据插入时快速定位可用位置。既用于表也用于索引。
  • 可见性映射文件:vm文件,如果一个页中的所有元组都是可见的(或者均已冻结),vm文件中会将两个对应标志位设为1。后续可以跳过对这些页的vacuum,freeze操作,提升性能,另外在执行计划中也可以使用  index-only scans,更加高效。只用于表不用于索引。
  • 初始文件:init文件,仅对unlogged table可用

测试创建unlogged table

CREATE UNLOGGED TABLE t(a int);
INSERT INTO t VALUES (1);
SELECT pg_relation_filepath('t');

未完待续...

相关内容

热门资讯

广州商业住房贷款转公积金贷款政... 8月20日,记者从广州住房公积金管理中心了解到,广州于2025年8月21日,开始实施《广州商业性个人...
爱奇艺二季度由盈转亏,高管首谈... 8月20日,爱奇艺发布截至2025年6月30日未经审计的第二季度财报。二季度,爱奇艺总收入为66.3...
世纪恒通股价上涨1.29% 深... 世纪恒通最新股价报41.47元,较前一交易日上涨0.53元。该股开盘价为40.65元,盘中最高触及4...
政策加持生育利好,圣贝拉上市首... 人口政策正上升为国家战略重心,2025年落地的“真金白银”育儿补贴进一步释放鼓励生育信号。 在此背景...
一场政策及时雨,唤醒长剧市场下... 近日,国家广播电视总局正式印发实施《进一步丰富电视大屏内容“广电21条”促进广电视听内容供给的若干举...
华利集团股价上涨1.39% 体... 截至2025年8月20日15时0分,华利集团股价报52.63元,较前一交易日上涨1.39%。当日成交...
斯瑞新材股价微跌0.06% 商... 截至2025年8月20日收盘,斯瑞新材股价报16.24元,较前一交易日下跌0.01元,跌幅0.06%...
广东“录像厅杀人案”3名凶手被... 1994年5月6日晚,广东省广州市黄埔区某村录像厅,4名年轻男子来询问是否可以夜里包场,女老板何某本...
享年62岁!台湾歌手千百惠因病... 8月20日19:43,华语流行乐男歌手黄安通过微博发布讣告称,台湾著名歌手千百惠于8月19日凌晨因病...
前经纪人透露千百惠去世原因:不... 搜狐娱乐讯 8月20日,黄安发讣告称千百惠去世,享年62岁。消息一出后在网上引起热议,媒体人杜恩湖采...