我们有 10 年的存档体育数据,分布在不同的数据库中。
试图将所有数据整合到一个数据库中。由于我们将处理 10 倍的记录数量,因此我现在正尝试重新设计架构以避免潜在的性能损失。
一项更改需要将团队名册表拆分为 2 个表;一个是存储固定数据的球员表:playerID、firstName、lastName、birthDate 等,另一个是存储有关球员可变数据的新花名册表:yearInSchool、jerseyNumber、位置、身高、体重等。这将除其他外,允许我们创建球员统计数据的职业生涯 4 年汇总视图。
很公平,有道理,但话又说回来,当我查看统计查询时,例如,球员汇总得分统计数据时,除了得分和日程表之外,我还必须加入球员和名单表,才能获得所有需要的信息。
我正在考虑非规范化的地方是玩家的名字和姓氏。如果我将球员的名字和姓氏存储在名册表中,那么我可以在统计查询等式中省略球员表,我假设这将是一个巨大的性能提升,因为每个表的总记录数将超过 100K(即大多数查询连接将跨表,每个表至少包含 100K 记录,目前最多为 300K)。
那么,在这种情况下,在哪里与非规范化划清界限呢?我假设复制名字,姓氏是可以的。一般来说,我喜欢数据的非重复/完整性,但我怀疑网站访问者更喜欢性能!