如果 Postgres 9 中的表有额外未使用的列,访问该表是否会变慢?
想象一下,我有一个包含两列、一个主键和一些数据的表。该表将会很大并且会被频繁访问。
现在假设我想添加另一条数据,该数据很少被访问。我可以安全地假设,如果常见查询不访问新列,则向表中添加另一列不会使它们变慢吗?
Imagine I have a table with two columns, a primary key and some data. This table is going to be large and is going to be accessed very frequently.
Now imagine I want to add another piece of data, which is accessed only rarely. Can I safely assume that adding another column to the table is not going to make the common queries any slower if they don’t access the new column?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
理论上是的:它会更慢,因为每个磁盘页面适合的行数较少。要读取表格行,您需要访问更多页面。
实际上,空值占用 1 位空间,并且 varlena 类型存储在扩展存储(toast)中。因此,它产生的实质性影响很小。
In theory yes: it'll be slower because less rows will fit per disk page. To read table rows, you'll need to visit more pages.
In practice, null values take 1 bit of room, and varlena types are stored in the extended storage (toast). So it makes little material impact.