使用 bytea 作为 table 索引和连接条件

Using bytea as table index and join condition

我最近担任的职位需要使用 AWS RDS Aurora Postgre 数据库。我有多年使用 MySQL、SQL 服务器和 RDS 的经验,但这是我第一次使用 postgre。我最初的反应是 postgre 看起来有多么不同,而且它似乎开箱即用 application/developer 多么友好。我注意到的一件事是我需要小心,不要想当然地认为我过去实施的一些 pollicies/procedures 将最适合 postge。这让我想到了这个问题,当我设计表和数据库时,我总是实现 SHA 或 MD5 哈希函数来处理复合键,以简化并更快地连接到其他表。我在当前的 postgre 项目和 postgre 中使用了相同的策略 (SHA512),此数据类型称为“bytea”。问题是当使用这个 bytea 连接到其他表时,我们的性能似乎很糟糕,这让我想知道在 postge 中是否有更好或标准的方法来处理这个问题?我是否应该查看 bytea 以外的其他因素作为性能问题的原因?

我从未在本论坛中看到 postgres 的这种方法。在 postgres 中,我们可以定义 primary keys and foreign keys, both refering to one column or a group of columns. Then, JOIN usually refers to a group of columns in the joined tables, see the manual. I don't see what could be the benefits of using SHA or MD5 hash for improving the performances of JOIN, I would rather think that performances will be degraded because of the hash process. In postgres, the typical solution to accelerate queries is to define indexes on the tables. Index is a powerful solution in postgres including HASH indexes 这可能听起来像您在 MySQL ?

中所做的那样