Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 如果Postgres 9中的表有额外的未使用列,那么访问该表的速度会变慢吗?_Performance_Postgresql - Fatal编程技术网

Performance 如果Postgres 9中的表有额外的未使用列,那么访问该表的速度会变慢吗?

Performance 如果Postgres 9中的表有额外的未使用列,那么访问该表的速度会变慢吗?,performance,postgresql,Performance,Postgresql,假设我有一个包含两列、一个主键和一些数据的表。该表将非常大,并且将非常频繁地被访问 现在想象一下,我想添加另一段数据,它很少被访问。我是否可以安全地假设,如果公共查询不访问新列,则向表中添加另一列不会使它们变得更慢 理论上是的:速度会慢一些,因为每页磁盘容纳的行数会少一些。要读取表行,您需要访问更多页面 实际上,空值占用1位空间,varlena类型存储在扩展存储(toast)中。因此,它几乎不会产生实质性影响。理论上是的:它会更慢,因为每个磁盘页面可以容纳的行更少。要读取表行,您需要访问更多页面

假设我有一个包含两列、一个主键和一些数据的表。该表将非常大,并且将非常频繁地被访问


现在想象一下,我想添加另一段数据,它很少被访问。我是否可以安全地假设,如果公共查询不访问新列,则向表中添加另一列不会使它们变得更慢

理论上是的:速度会慢一些,因为每页磁盘容纳的行数会少一些。要读取表行,您需要访问更多页面


实际上,空值占用1位空间,varlena类型存储在扩展存储(toast)中。因此,它几乎不会产生实质性影响。

理论上是的:它会更慢,因为每个磁盘页面可以容纳的行更少。要读取表行,您需要访问更多页面


实际上,空值占用1位空间,varlena类型存储在扩展存储(toast)中。因此它几乎没有实质性影响。

我没有说新列都是空的,甚至大部分都是空的。事实上,大部分都是中等长度的文本。你的答案仍然适用吗?@Timwi:他的答案仍然适用。中等长度的文本将被存储在行外,就像一个BLOB,除非对您透明。观测到的速度差基本上为零。我没有说新列都是零,甚至大部分都是零。事实上,大部分都是中等长度的文本。你的答案仍然适用吗?@Timwi:他的答案仍然适用。中等长度的文本将被存储在行外,就像一个BLOB,除非对您透明。观测到的速度差基本上为零。