原文地址: https://blog.csdn.net/pg_hgdb/article/details/79093481

pg单条记录,单个表,单个数据库的最大限制是多少?

下面是一些限制:

单个数据库最大尺寸? 无限制(已存在有 32TB 的数据库)
单个表的最大尺寸? 32 TB
一行记录的最大尺寸? 400 GB
一个字段的最大尺寸? 1 GB
一个表里最大行数? 无限制
一个表里最大列数? 250-1600 (与列类型有关)
一个表里的最大索引数量? 无限制
当然,实际上没有真正的无限制,还是要受系统可用磁盘空间、可用内存/交换区的制约。 事实上,当上述这些数值变得异常地大时,系统性能也会受很大影响。

单表的最大大小 32 TB 不需要操作系统对单个文件也需这么大的支持。大表用多个 1 GB 的文件存储,因此文件系统大小的限制是不重要的。

如果缺省的块大小增长到 32K ,最大的单表大小和最大列数还可以增加到四倍。

有一个限制就是不能对大小多于2000字节的列创建索引。幸运地是这样的索引很少用到。通过对多字节列的内容进行MD5哈稀运算结果进行函数索引可对列的唯一性得到保证, 并且全文检索允许对列中的单词进行搜索。

转自pg中文社区。

insert int A values(*******************) 插入多条数据,最多想到:写成这样: insert into A values(**********),(*************),(*****************) 但是在百万数据面前,都太慢了。 1、用脚本的方式 1 #!/bin/b... 19.7. 查询规划 19.7.1. 规划器方法配制 这些配置参数提供了影响查询优化器选择查询规划的原始方法。如果优化器 为特定的查询选择的缺省规划并不是最优,那么我们就可以通过使用这些 配置参数强制优化器选择一个更好的规划来temporary解决这个 问题。不过,永久地关闭这些设置几乎从不是个好主意。更好的改善优化器 选择规划的方法包括调节Section 18.6.2、 更频繁运行ANALYZE、增大配置参数 default_statistics_target的值、使用 ALTER TABLE SET S 作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单 最好不要超过2000w”,“单 超过2000w 就要考虑数据迁移了”,“你这个 数据都马上要到2000w 了,难怪查询速度慢” 为什么 postgresql 最大 的单 只能是32TB?这需要从数据文件来说起。在 postgresql 中,一张 对应多个数据文件。数据文件中存储的是page,每一个page都有一个单独的编号,因为pg寻址空间采用的是32位,也就是2^32=4294967296,也就是一组数据文件中最多存放这些page。按照默认的block_size设置为8K,可以计算出来一组数据文件 最大 的大小是32T。这里,注意我说... 突然听到运维说磁盘预发布环境磁盘空间不够,细查之下发现是由于某个 的数据太大导致的,但是查看了下 数据库 发现,实际的 数据量只有60w条,很明显 哪里出问题了,一开始以为是犹豫 的设计不合理索引导致的数据量大,细看之下发现挺正常的。 文章目录 PostgreSQL 数据类型数字类型字符类型时间/日期类型布尔类型网络地址类型数组类型范围类型json/jsonb类型数据类型转换 PostgreSQL 数据类型 PostgreSQL 支持 最大 字段大小为1GB