微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql – hstore如何在内部存储数据?

我正在使用 postgresql hstore扩展,并好奇数据是如何在内部存储的.请指出我在hstore源代码中查看的位置以查看实现细节.

解决方法

hstore是主要的Postgresql发行版的一部分,它位于 http://git.postgresql.org/和GitHub上. Here is hstore in git head.

它看起来像存储为varlena,这意味着它像任何其他东西一样是TOASTable.缺点是整个字段需要从磁盘读取 – 至少如果它是压缩的 – 来提取密钥.

这也意味着,与任何其他正常字段值一样,更新字段的任何部分都要求必须将整个元组(行)的新副本写入表中,并将旧标记为任何活动状态不再可见时标记为过期的表交易(见Pg手册中的MVCC).因此,对于经常更改的数据而言,大型hstore是不可取的,因为每当它的任何部分发生更改时,您都需要重写整个事物(以及包含它的行).

> hstore.h
> hstore_io.c

这些来源似乎没有太多的评论方式,以提供hstore值的结构和存储方式的概述,并且它是一个可以快速采用的宏森林.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐