Postgres HStore 对性能有什么影响?

4
假设我有一个带有一些HStore列的Postgres数据库。这对性能有什么影响?特别是如果大多数查询在不检查HStore属性的情况下运行,那么存在HStore属性会显著减慢它的速度吗?
1个回答

7

在存储方面,hstore 就像 byteatext 这样的另一个可变长度字段。它可以进行TOAST外部存储,压缩等操作。

当您不访问 hstore 列时,唯一需要考虑的就是它给每行添加的额外大小,从而使扫描变慢。这通过 PostgreSQL 在 TOAST 表中存储更大的 hstore 字段来缓解。

text 或其他可变长度列一样,如果您更新行,则由于PostgreSQL的写时复制并发控制,必须复制大列的内容。但是,如果该列未在写入中修改且已被存储在外部,PostgreSQL通常可以避免复制它,而只需复制对其的引用。

一般情况下,如果未经过重度使用,拥有 hstore 列对性能不会产生太大影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接