PostgreSQL 中的数据文件可以容纳多少行?

问题描述

我在 Postgresql 的表空间中有一个包含一列的表。 这产生了 3 个数据文件,如下图所示。

enter image description here

为了测试数据的存储位置,我在表中添加了一行,其中只有一个值,数据文件“49565”从 0kb 变为 8kb。我知道数据存储在 8kb 的页面中,每个页面都在数据文件中。

我需要知道的是“49565”数据文件中可以容纳多少行。我如何获得这个值?

第二个问题。 当我检查我创建的表空间时,它显示了两个对象:索引和表。由于索引行提到了数字“49565”,我认为这是索引的数据文件(第一个图像)。那么,为什么我在表中添加的行存储在该数据文件中?

enter image description here

解决方法

这些文件中只有一个是正确的表,其他文件可以是 TOAST 表和 TOAST 索引,也可以是索引。

表的数据文件的大小限制为 1GB。如果超过该值,将创建第二个段 49565.1。所以桌子没有大小限制。

一个数据文件中有多少行取决于行的大小,但这不是一个非常重要的问题。最好插入大量具有真实数据和度量的行。