Postgres HStore 对性能的影响是什么?
What is Postgres HStore's effect on performance?
假设我有一个带有一些 HStore 列的 Postgres 数据库。它对性能有什么影响?特别是如果大多数查询 运行 没有检查 HStore 属性,那么 HStore 属性是否会显着降低速度?
在存储术语中,hstore
只是另一个可变长度字段,如 bytea
或 text
。 TOAST
able 用于离线存储,可压缩等
当您不访问 hstore
列时,唯一的问题是它为每行添加的额外大小,从而使扫描速度变慢。 PostgreSQL 在 TOAST table.
中离线存储更大的 hstore
字段可以缓解这种情况
与 text
或其他可变长度列一样,如果您 update
由于 PostgreSQL's copy-on-write concurrency control 而必须复制大列内容的行。然而,如果列在写入时没有被修改,并且它被存储在离线状态,PostgreSQL 通常可以不复制它,而只是复制对它的引用。
如果不经常使用 hstore 列,通常不会对性能产生太大影响。
假设我有一个带有一些 HStore 列的 Postgres 数据库。它对性能有什么影响?特别是如果大多数查询 运行 没有检查 HStore 属性,那么 HStore 属性是否会显着降低速度?
在存储术语中,hstore
只是另一个可变长度字段,如 bytea
或 text
。 TOAST
able 用于离线存储,可压缩等
当您不访问 hstore
列时,唯一的问题是它为每行添加的额外大小,从而使扫描速度变慢。 PostgreSQL 在 TOAST table.
hstore
字段可以缓解这种情况
与 text
或其他可变长度列一样,如果您 update
由于 PostgreSQL's copy-on-write concurrency control 而必须复制大列内容的行。然而,如果列在写入时没有被修改,并且它被存储在离线状态,PostgreSQL 通常可以不复制它,而只是复制对它的引用。
如果不经常使用 hstore 列,通常不会对性能产生太大影响。