PG中的一些极限值(表的最大值)

0    857    4

Tags:

👉 本文共约920个字,系统预计阅读时间或需4分钟。

PG极限值

PostgreSQL性能极限值如下:

最大单个数据库大小不限
最大数据单表大小32 TB
单条记录最大1.6 TB
单字段最大允许1 GB
单表允许最大记录数不限
单表最大字段数250 - 1600 (取决于字段类型)
单表最大索引数不限

字段是比记录更小的单位,字段集合组成记录,每个字段描述文献的某一特征,即数据项,并有唯一的供计算机识别的字段标识符。

在数据库中,大多数时,表的“列”称为“字段” ,每个字段包含某一专题的信息。就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。

PgSql单表最大32T,不限制记录数,但最多能存多少条记录还要看单条记录大小和对查询性能的要求,如果没有复杂的查询或统计操作正常单表上亿条记录查询性能也是能接受的。否则就要考虑分区或分库分表操作。

为什么postgresql最大的单表只能是32TB?

这需要从数据文件来说起。
在postgresql中,一张表对应多个数据文件。
数据文件中存储的是page,每一个page都有一个单独的编号,因为pg寻址空间采用的是32位,也就是2^32=4294967296,也就是一组数据文件中最多存放这些page。

按照默认的block_size设置为8K,可以计算出来一组数据文件最大的大小是32T。
这里,注意我说的是一组,而不是一个。
一组说的是单张表使用的一批数据文件。
默认的,数据文件大小最大被设置为1G。
这样理论上单张表可以产生多达32000个数据文件。
而且,每组数据文件的页编号是连续的。
也就是,如果一组中上一个数据文件的最后一页编号是0x14159265,那么下一个数据文件第一个页编号是0x14159266而不0x00000000。
这样就明白了为什么最大的单表只能是32TB。
如果,使用32K的block_size,那么可存放的最大数据量就是4倍的32T,也就是128T了。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部