189 8069 5689

POSTGRESQL的底层存储原理是什么

今天就跟大家聊聊有关POSTGRESQL的底层存储原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联建站自成立以来,一直致力于为企业提供从网站策划、网站设计、做网站、网站制作、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

1 从对比来看POSTGRESQL 的数据库(非INSTANCE 那个级别的数据库),SQL SERVER 的DBA 可以和理解 SQL SERVER 对INSTANCE 和数据库的概念一样,不需要费劲,MySQL 的DBA 也是一样。 ORACLE的DBA 需要理解,这里的数据库就是ORACLE中一堆同样用户下的表的集合,叫数据库。非INSTANCE的那个概念。

下图就是一个POSTGRES QL INSTANCE 中包含的数据库,有一些事自建的,有些是系统的数据库, oid是每个数据库的OBJECT_ID,这点很类似SQL SERVER 中每个对象都有一个OBJECT_ID。

POSTGRESQL的底层存储原理是什么

创建一个表company, 这里展示他的表结构,通过查询COMPANY的表结构,发现查询语句的写法的确和PL/SQL 类似,看来SQL SERVER 和MYSQL 在处理表关联是一路的, ORACLE 和 POSTGRES QL 在写表关联是一个思路。

POSTGRESQL的底层存储原理是什么

那这个表的实体文件到底存在哪里,

POSTGRESQL的底层存储原理是什么

POSTGRESQL的底层存储原理是什么

一般一个表会有三个文件,表的数据文件, _FSM _VM 三个文件,组成,FSM 和 VM 和表的数据页面管理,以及数据清除有关。

POSTGRES QL 对用户是比较友好的,例如你要查当前库中的COMPANY表的一些信息,这是其他数据库都做的不足到的。

POSTGRES QL 仅仅需要输入 \dt company,直接将结果就输出了

POSTGRESQL的底层存储原理是什么

相对其他数据库要简单的快速方便的多。

通常POSTGRESQL 中每个表是存储在多个固定的 8KB的页面中的,表存储在HEAP的文件中,并且由于页面的组织方式和 ORACLE 有些相似,通过item 指向 数据块的方式,下图画的比较粗糙,实际上POSTGRESQL在每个页面中的设计是很巧妙的。

POSTGRESQL的底层存储原理是什么

通过相关函数(POSTGRESQL 默认不按照,自己源码编译,此处不再介绍安装过程)

POSTGRESQL的底层存储原理是什么

通过上面的命令我们可以分析POSTGRESQL 的页面基本信息

如果我们想知道这个页面到底有多少空间还可以使用, 使用 UPPER - LOWER 就可以得到我们剩下的空间,并且头部占用  24B 每个 ITEM 占用 4B,由于元祖(data)的长度并非完全一致,所以这里面通过 alignmentpadding 来补齐元祖,提高I/O的性能,一般64位的机器的长度为8K

下面我们继续分析,POSTGRESQL 中的元祖信息(DATA),通过下图

我们可以看到,每一个数据行对应的CTID 和 每一行占用的PAGE中的大小

(SQL SERVER 里面也有类似的函数可以查看,并且一眼就可以看出和 ORACLE, POSTGRESQL 之间的数据页面的组织不同)

POSTGRESQL的底层存储原理是什么

大致一行的数据是上面图组成的(画的还是不仔细t-min  t-max 少X 应为 t-xmin  t-xmax ,见谅)


POSTGRESQL的底层存储原理是什么

主要元祖的创建transaction 号 T-XMIN

       元祖的删除transaction 号 T-XMAX

       CTID 

        t_hoff 数据偏移量

        data    数据组成

未来验证上面的行结构,新建一个表 varchar(8000) ,并且大量输入字符,见下面的图,大家可以很清楚的查看,页中的truple(元祖的)偏移量和占用的空间

POSTGRESQL的底层存储原理是什么

POSTGRES QL ,在数据存储底层设计上,和ORACLE 基本相似,并且也是堆表进行数据的存储,这在很大一方面验证了,这样的底层设计有利于大数据的处理,也验证了部分最近很大一部分机构和企业的在 ORACLE 转型中,选择POSTGRES QL 来代替 ORACLE 数据库的可行性。

看完上述内容,你们对POSTGRESQL的底层存储原理是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


新闻标题:POSTGRESQL的底层存储原理是什么
文章分享:http://cdxtjz.cn/article/jpiics.html

其他资讯