作为一款优秀的开源数据库软件,PostgreSQL非常值得深入学习一下。先总结一下PostgreSQL数据库的存储体系结构。
成都创新互联专注于郊区企业网站建设,成都响应式网站建设公司,成都做商城网站。郊区网站建设公司,为郊区等地区提供建站服务。全流程定制网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
传统的关系型数据库的存储结构多采用表空间的管理方式,其中涉及到extent,segment,page,file等存储概念。
表空间的管理方式通常有SMS,DMS两种策略,PostgreSQL在改进之后也支持了DMS方式。在oracle,DB 2中很早就支持了DMS了,在使用Oracle的工作过程了对其有了全面了解。DMS不论在OLAP还是OLTP系统中都比SMS的性能有不小的提升,随着OLTP规模不断增大的情况下两者之间的差距显现不大。
在这里只总结一下PostgreSQL的DMS管理方式。
数据文件
PostgreSQL的文件管理方式与Oracle的非常相似,每个数据文件的***块存储文件头信息,第二个块存储文件头的6个文件位图页的日志情况,算起来是从第七个块真正的开始。PostgreSQL的文件头中的位图页表示的是区(extent)的存储情况,而oracle表示的是块的分配情况;PostgreSQL的每个区固定有16个块,Oracle更灵活一些。
区
区的概念与Oracle相同,连续的若干块组成了区,在PostgreSQL中区中的块数是固定值16。
段
PostgreSQL因为没有undo段,只存在数据段与索引段两种,实质只是段结构不同。PostgreSQL的数据段与Oracle相同,采用了自动段空间的管理方式:
1,每个段有一个段头页,也是段的***个页;
2,每个段中每个区的***页称为一级位图页;
3,每个段中***区的第二个页称为二级位图页,其管理着512个一级位图页位置与得使用情况,每个段存在1016个二级位图页;
计算:
512个一级位图页/二级位图页*1016个二级位图页/段=520192个一级位图页。
每个区只有一个一级位图页,就是说每个段共有520192个区。
520192区/段*16块/区*8K/块=63.5GB
文件
文件的分配方式实际有表空间所采用的区分配方式决定。
分配新区:首先通过参数值used_size判断剩余空间是否足够16个块,初始化该区的一级位图页,修改二级位图页,更新段头页与文件头信息。
PostgreSQL的存储策略大致如上,更深入的去学习其存储策略对数据库的维护与性能优化等方面都会带来更大的帮助。
分享文章:简述PostgreSQL存储体系小块头也有大优点
分享地址:http://www.shufengxianlan.com/qtweb/news22/87672.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联