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

前端之家收集整理的这篇文章主要介绍了大型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系列压缩技术中相当简单且非常快速的成员.”

猜你在找的Postgre SQL相关文章