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

大型PostgreSQL表:更好的添加列或创建新表来存储元数据?

我有一个大表(约200万行),每行代表一个图像.我想为每个图像存储 JSON格式的EXIF元数据.此 JSON blob每张图像大约6KB.

这个EXIF元数据不会经常被查询/使用,我想知道将它存储在一个带有两列(imageid,exifjson)的单独表中是否明显更高效,或者Postgresql是否只处理这个问题罚款作为现有表格上的文本列.我不希望添加列来显着减慢表上的普通查询,或者数百万的6KB文本值使Postgresql陷入困境.

解决方法

我会把那一列作为 TOAST-ed.

ALTER TABLE ... ALTER <column> SET STORAGE <EXTERNAL|EXTENDED>;
 -- EXTERNAL - out-of-line storage,not compression[1]
 -- EXTENDED - both compression and out-of-line storage

Postgresql已经尝试将它用于大于~2kB的数据.

[1]“所使用的压缩技术是LZ系列压缩技术中相当简单且非常快速的成员.”

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

相关推荐