Postgresql Postgres:是使用oid还是字节数组

Postgresql Postgres:是使用oid还是字节数组,postgresql,Postgresql,我正在做一个项目,在一个postgres数据库中有多个模式。有时我不得不将一些模式从一个数据库移动到另一个数据库。在我的数据结构中,我使用了很多oid列,这些列在移动过程中会造成问题,因为oid与模式移动到的新数据库中的现有oid冲突 我正在使用以下命令进行备份并还原架构 pg_dump -f <file> -F t -o --blobs -n <schema> <database> pg_restore -d <database> -F t -

我正在做一个项目,在一个postgres数据库中有多个模式。有时我不得不将一些模式从一个数据库移动到另一个数据库。在我的数据结构中,我使用了很多oid列,这些列在移动过程中会造成问题,因为oid与模式移动到的新数据库中的现有oid冲突

我正在使用以下命令进行备份并还原架构

pg_dump -f <file> -F t -o --blobs -n <schema> <database>

pg_restore -d <database> -F t -v <file>
pg_dump-f-f t-o--blobs-n
pg_restore-d-F t-v
我所有的文件大小都在100MB以下,大多数文件的大小只有几KB,因此我考虑使用
bytea
数据类型,而不是
oid

这是一个好的举动还是一个坏的举动

根据文档,如果文件大小非常大,则建议使用
oid
,但在我的情况下,文件会很小


如果我使用
bytea
而不是像索引/搜索那样使用
oid
,会对性能产生影响吗?

在这种情况下不使用
oid
(或
serial
)的原因是它们是按顺序递增的,因此出现冲突也就不足为奇了

我不是100%确定,但阅读文档时,看起来
bytea
的实现在存储空间方面与
varchar
类似,因此索引大小、搜索速度和存储要求将类似。也就是说,使用整数值或长数值将占用更多的空间,并且速度较慢。但是,要慢多少,如果这对您的用例很重要,我不确定

为什么不尝试整数(或长),但首先使用随机值而不是顺序值?如果这不起作用,我建议使用内置的
uuid
类型,而不是尝试用自己生成的数据填充字节数组