performance - Postgres HStore 对性能的影响是什么?

标签 performance postgresql hstore

假设我有一个带有一些 HStore 列的 Postgres 数据库。它对性能有什么影响?特别是如果大多数查询在不检查 HStore 属性的情况下运行,那么存在 HStore 属性的事实是否会显着降低速度?

最佳答案

在存储方面,hstore 只是另一个可变长度字段,如 byteatext。这是TOASTable用于线外存储、可压缩等。

当您不访问 hstore 列时,唯一的问题是它为每行添加的额外大小,从而使扫描速度变慢。 PostgreSQL 在 TOAST 表中离线存储更大的 hstore 字段可以缓解这种情况。

text 或其他可变长度列一样,如果您更新 行,则必须复制大列的内容,因为 PostgreSQL's copy-on-write concurrency control .然而,如果该列在写入时没有被修改并且它被离线存储,PostgreSQL 通常可以不复制它而只是复制对它的引用。

如果不经常使用 hstore 列,通常不会对性能产生太大影响。

关于performance - Postgres HStore 对性能的影响是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29063990/

相关文章:

ruby - 为什么#map 比#each 更有效?

c - 就可读性和性能而言,哪种代码风格更好?

java - Java 中的私有(private)内部类是否有性能开销?

Postgresql 全文搜索分词器

json - 在 Postgres 9.3+ 中将 JSON 转换为 HSTORE?

java - 测量 java.io.InputStream 的性能

ruby-on-rails - Postgis 地理列在保存时抛出异常

postgresql - 如何监控 Postgres 的长时间运行的事务?

postgresql - 无法将 hstore 扩展安装到新创建的模式

postgresql - 如何获得搜索多个术语以使用索引的 hstore 查询?