加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

面试官:谈谈你对PG体系结构的理解?

发布时间:2019-07-26 15:31:22 所属栏目:MySql教程 来源:波波说运维
导读:今天本文主要从日志文件、参数文件、控制文件、数据文件、redo日志(WAL)、后台进程这六个方面来介绍一下PostgreSQL的架构。 架构 PostgreSQL的主要架构如下: 一、日志文件 1. 日志文件种类 $PGDATA/log 运行日志(pg10之前为$PGDATA/pg_log) $PGDATA/pg_wa

Page默认大小为8KB,最大32KB,一个数据块中可存放多行的数据。块中的结构如下图:

面试官:谈谈你对PG体系结构的理解?

块头记录了如下信息:

  • 块的checksum值
  • 空闲空间的起始位置和结束位置
  • 特殊数据的起始位置
  • 其他一些信息
  • 行指针是一个32bit的数字,具体结构如下:
  • 行内容的偏移量,占15bit;
  • 指针的标记,占2bit;
  • 行内容的长度,占15bit。

行指针中表示行内容的偏移量是15bit,能表示的最大偏移量是2^15=32768,因此块的最大大小是32768,即32KB。

2. page物理位置

page的物理位置在$PGDATA/BASE/DATABASE_OID/PG_CLASS.RELFILENODE

需要注意的是,pg_class.relfilenode类似dba_objects.data_object_id,truncate表之后relfilenode会变。对应的物理文件名字也会变。

五、WAL日志

1. wal位置

wal在$PGDATA/pg_wal下。10之前为pg_xlog

2. wal命名格式

文件名称为16进制的24个字符组成,每8个字符一组,每组的意义如下

面试官:谈谈你对PG体系结构的理解?

3. 手动切换WAL日志的命令

在PG10之前:

  1. highgo=# select pg_switch_xlog(); 
  2.  pg_switch_xlog  
  3. ---------------- 
  4.  0/B000C48 
  5. (1 row) 

在PG10之后:

  1. highgo=# select pg_switch_wal(); 
  2.  pg_switch_wal  
  3. ---------------- 
  4.  0/B000C48 
  5. (1 row) 

六、后台进程

pg后台进程说明如下:

面试官:谈谈你对PG体系结构的理解?

【编辑推荐】

  1. MariaDB:真正的实时同步数据库,MySQL要小心了
  2. 如何选择高性能NoSQL数据库
  3. 挑战 Oracle 的全球首个 AI 原生数据库 GaussDB,华为将开源
  4. Linux下如何实现MySQL数据库每天定时自动备份
  5. 一文学会Mysql数据库性能优化--创建表、设计表、SQL优化
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读