与Postgres中顺序类型整数的PK相比,bytea类型的PK更慢吗?

时间:2018-02-14 19:27:02

标签: postgresql

我正在开发一个项目,我必须使用x类型的bytea列存储数百万行(最大大小为128字节)。我需要按x(即where x = ?)查询数据。现在我想知道我是否可以直接使用x作为主键而不会对性能产生任何负面影响?

我还必须在另一个表的主键上加入该表,因此我还必须将bytea作为外键存储在另一个表中。

据我所知,大多数数据库系统都使用B + -Tree,其搜索复杂度为θ(log(n))。使用bytea作为主键时,我不确定Postgres是否可以有效地组织这样的B + -Tree?

1 个答案:

答案 0 :(得分:1)

如果您可以保证bytea的值永远不会改变,您可以将其用作主键。

但这样做并不一定明智:如果该密钥也存储在其他表中,这将浪费空间,人工主键可能会更好。