代码之家  ›  专栏  ›  技术社区  ›  Chaddeus

如何保持联接表的性能?

  •  1
  • Chaddeus  · 技术社区  · 14 年前

    我正在为我的网站上的一些新功能制定计划,其中一个功能可以使用连接表“解决”。

    示例架构:

    人员表

    • PK人格化
    • 姓名
    • 年龄。。。

    人事检查表

    • PK FK人格
    • PK FK支票ID
    • 日期。。。

    登记表

    • PK检查ID
    • 签入到。。。

    将运行一个join来获取一个人(由person check in表连接)的签入数据。由于每个人都可以无限次地登记,person check in表可能会变得非常大。

    我想这会导致一些性能问题。为了保持高性能,通常的处理方法是什么?

    2 回复  |  直到 14 年前
        1
  •  2
  •   OMG Ponies    14 年前

    连接正在考虑连接相关表的最佳性能方法。
    但它实际上取决于查询,因为它可能不需要是连接——如果有多个子记录相关,则连接会使父表端的记录集膨胀,这意味着可能需要GROUPBY或DISTINCT。在这种情况下存在或存在是一个更好的选择。。。

    索引可以帮助处理连接条件中使用的列,包括关系的两边。在本例中,两边都是主键,通常在定义主键时会自动创建最佳索引。。。

        2
  •  -1
  •   Lorenzo OnoSendai    14 年前

    如果要经常执行此查询,并且希望获得更好的性能,只需在编写连接查询的数据库上创建一个视图