gpt4 book ai didi

MySQL:规范化,这是一个有效的异常吗?

转载 作者:行者123 更新时间:2023-11-29 08:54:32 28 4
gpt4 key购买 nike

我们拥有 10 年的存档体育数据,分布在不同的数据库中。

尝试将所有数据合并到一个数据库中。由于我们将处理 10 倍的记录数量,因此我现在正在尝试重新设计架构以避免潜在的性能影响。

一项更改是将团队名册表分成 2 个表;一个是存储固定数据的球员表:球员ID、名字、姓氏、出生日期等,另一个是新的名单表,用于存储有关球员的可变数据:yearInSchool、 Jersey 号码、位置、高度、体重等。这将让我们能够创建职业生涯 4 年球员统计数据的汇总 View 。

很公平,有道理,但话又说回来,当我查看统计的查询时,例如,球员汇总得分统计数据,我还必须加入两个球员和名单表评分和安排表格,以获得所需的所有信息。

我正在考虑对玩家的名字和姓氏进行非规范化。如果我将玩家的名字和姓氏存储在名册表中,那么我可以从统计查询的等式中省略玩家表,我假设这将是一个巨大的性能胜利,因为每个表的总记录数将超过 100K (即大多数查询连接将跨表,每个表至少包含 100K 条记录,目前最多包含 300K 条记录。

那么,在这种情况下,如何与非规范化划清界限呢?我认为重复名字和姓氏是可以的。一般来说,我喜欢数据的非重复/完整性,但我怀疑网站访问者更喜欢性能!

最佳答案

首先想到的是,您确定已经用尽调整选项来获得良好的 SELECT 性能,而无需在此处进行反规范化吗?

我非常同意你的观点,即“没有什么神圣的东西”,并在必要时进行非规范化,但这听起来像是获得体面性能应该不难的情况。

当然你们也做了自己的探索,如果排除了那么个人意见是可以接受的,是的。

一个问题 - 如果玩家的名字发生变化会发生什么?在你的系统中可以这样做吗?您会使用事务在单个 COMMIT 操作中更新所有名册详细信息吗?请注意,对于历史记录数据库来说,这可能完全无关。

关于MySQL:规范化,这是一个有效的异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10334387/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com