
PostgreSQL 数据库---内核源码分析 那海蓝蓝:生活点滴,随风拂去
第 1 页/共 23 页
PostgreSQL 的数据存储
作者:李海翔
博客:http://blog.163.com/li_hx/
邮箱:lhx3000@163.com
1 存储层概述 .................................................................................................................................. 2
2 数据缓冲区和数据存储层之间的接口 ...................................................................................... 3
2.1 存储访问接口层............................................................................................................... 3
2.2 良好的接口层抽象 ........................................................................................................... 4
3 虚拟文件管理 .............................................................................................................................. 6
4 数据存储 ...................................................................................................................................... 7
4.1 数据的外存形式............................................................................................................... 7
4.1.1 外存文件样式 ....................................................................................................... 7
4.1.2 “relation”如何与外部文件对应 ......................................................................... 8
4.1.3 用户自定义 relation 的存储形式分类 ............................................................... 10
4.1.4 系统 relation 的存储形式 .................................................................................. 10
4.2 数据的内部格式............................................................................................................. 11
4.2.1 页的存储数据结构 ............................................................................................. 11
4.2.2 表数据页的存储数据格式 ................................................................................. 12
4.2.3 大数据的处理方式---TOAST ............................................................................ 13
4.2.4 大数据量的处理方式—文件分割 ..................................................................... 13
4.3 微对象存储方式与 tuple 的结构 ................................................................................... 13
4.3.1 Tuple 的数据结构 .............................................................................................. 13
4.3.2 Tuple 是否可以跨页面....................................................................................... 14
4.3.3 微对象存储方式 ................................................................................................. 15
4.4 SQL 操作对页面的影响 ................................................................................................ 16
4.4.1 DML 操作对于页面存储格式的影响 ............................................................... 16
4.4.2 Vacuum 操作对页面的影响 ............................................................................... 18
4.5 索引数据的内部格式 ..................................................................................................... 18
4.6 表空间 ............................................................................................................................ 18
4.7 大对象存储 .................................................................................................................... 19
4.8 物理 IO 调用方式 .......................................................................................................... 19
5 并发访问与存储关系 ................................................................................................................ 20
6 与存储相关的事务处理 ............................................................................................................ 20
7 扩展话题 .................................................................................................................................... 21
7.1 列存储 ............................................................................................................................ 21
7.2 分区 ................................................................................................................................ 21
7.3 数据压缩 ........................................................................................................................ 21
评论