PostgreSQL数据库限制

PostgreSQL 数据库存在一些大小和数量的硬性限制。

不过,这些限制通常足够大,因此实际情况往往是系统性能、磁盘空间首先出现问题。

项目 上限 备注
数据库大小 无限制
数据库数量 4,294,950,911
每个数据库中的关系数量 1,431,650,303
关系大小 32 TB BLCKSZ 使用默认 8192 字节
每个表中的行数 取决于 4,294,967,295 个数据页存储的元组数量
每个表中的列数 1600 进一步受到单个数据页大小的限制,参见下文
单个结果集中列数 1664
字段大小 1 GB
标识符长度 63 字节 重新编译 PostgreSQL 可以调整大小
每个表中的索引数量 无限制 受到每个数据库中的关系数量限制
每个索引中的列数 32 重新编译 PostgreSQL 可以调整大小
分区键 32 重新编译 PostgreSQL 可以调整大小

备注:关系包括表、序列、视图、外部表、物化视图、复合类型以及索引。

每个表中支持的最大列数还需要单个数据页(8192 字节)的限制,因为单个元组必须存储在同一个数据页中。例如,去掉元组头部之外,一个由 1600 个 int 字段组成的元组需要 6400 字节,可以存储在一个数据页中。但是一个由 1600 个 bigint 字段组成的元组需要 12800 字节,无法使用单个数据页存储。

变长字段,例如 text、varchar、char,长度超过一定的阈值时可以使用 TOAST 技术存储在行外。此时数据页中只存储一个 18 字节的指针。对于阈值之内的变长字段,元组包含一个 4字节或者 1 字节的字段头部以及数据。

另外,表中已经删除的字段,也会计算到字段限制中。而且,已删除的字段在插入数据时,在元组的空值位图中标记为 null,空值位图也需要占用空间。

相关推荐
202321336054 刘12 分钟前
Linux常用命令分类整理
linux·运维·数据库
Q741_14713 分钟前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
c语言·数据库·c++·算法·笔试·哈夫曼编码·哈夫曼树
齐 飞23 分钟前
快速删除mysql表中所有数据-TRUNCATE TABLE
数据库·mysql
想摆烂的不会研究的研究生25 分钟前
每日八股——Redis(2)
数据库·redis·缓存
optimistic_chen27 分钟前
【Redis系列】主从复制
linux·数据库·redis·缓存·中间件·命令行·主从复制
一个天蝎座 白勺 程序猿32 分钟前
KingbaseES 处理 PL/SQL 运行时错误全解析:从异常捕获到异常处理的实践指南
数据库·sql·oracle·kingbasees
leo_23240 分钟前
表&表结构--SMP(软件制作平台)语言基础知识之三十三
数据库·开发工具·表结构·smp(软件制作平台)·应用系统
C***11501 小时前
Spring TransactionTemplate 深入解析与高级用法
java·数据库·spring
+VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue建筑材料管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
2301_800256111 小时前
B+树:数据库的基石 R树:空间数据的索引专家 四叉树:空间划分的网格大师
数据结构·数据库·b树·机器学习·postgresql·r-tree