Som*_*Guy 2 postgresql performance hstore
假设我有一个带有一些HStore列的Postgres数据库.它对性能有何影响?特别是如果在不检查HStore属性的情况下运行大多数查询,那么HStore属性是否会显着降低它的速度?
在存储术语hstore中只是另一个可变长度字段,如bytea或text.它TOAST可以进行外线存储,可压缩等.
当您不访问该hstore列时,唯一需要考虑的是它为每行添加的额外大小,使扫描速度变慢.这可以通过PostgreSQL hstore在TOAST表中存储更大的字段来减轻这种情况.
与一个text或其他可变长度列一样,如果你update的行必须复制大列的内容,因为PostgreSQL的写时复制并发控制.但是,如果在写入时没有修改列并且它已经存储在线外,那么PostgreSQL通常可以避免复制它,而只是复制对它的引用.
如果没有大量使用,通常使用hstore列对性能没有太大影响.