【问题标题】:Using bytea as table index and join condition使用 bytea 作为表索引和连接条件
【发布时间】:2021-12-20 19:50:10
【问题描述】:

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

【问题讨论】:

    标签: postgresql join hash amazon-rds bytea


    【解决方案1】:

    我从未在这个论坛中看到过这种用于 postgres 的方法。在 postgres 中,我们可以定义 primary keysforeign keys,它们都引用一个列或一组列。然后,JOIN 通常指的是连接表中的一组列,请参见manual。我看不出使用 SHA 或 MD5 哈希来提高 JOIN 的性能有什么好处,我宁愿认为性能会因为哈希过程而降低。在 postgres 中,加速查询的典型解决方案是在表上定义索引。 Index 是 postgres 中一个强大的解决方案,包括 HASH indexes 这听起来可能像您在 MySQL 中所做的那样?

    【讨论】:

    • 对。用复合键就好了。
    猜你喜欢
    • 2020-09-26
    • 2020-05-16
    • 2013-12-05
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    相关资源
    最近更新 更多