提高分层 SQL 结构的性能

发布时间:2023-10-16 12:30

​## 上下文

我和我的团队最近在一个拥有数百万页面的足球迷网站上工作。该网站的想法是成为足球支持者的权威资源,尤其是在投注方面。数据库和[应用程序架构]不是特别复杂。这是因为调度程序负责定期重新计算复杂数据并将其存储在表中,这样查询就不必涉及[SQL 聚合]。因此,真正的挑战在于[非功能性需求],例如性能和页面加载时间。

应用领域

体育行业有多个数据提供者,每个提供者都为其客户提供不同的数据集。具体来说,足球行业有四种类型的数据:

  1. 传记数据:身高、宽度、年龄、他们效力的球队、获得的奖杯、获得的个人奖项以及足球运动员和教练。
  2. 历史数据:过去比赛的结果和那些比赛中的事件,如进球、助攻、黄牌、红牌、传球等。
  3. 当前和未来数据:当前赛季的比赛结果和这些比赛中发生的事件,以及未来比赛的表格。
  4. 实时数据:正在进行的游戏的实时结果和实时事件。

我们的网站涉及所有这些类型的数据,特别关注出于 SEO 原因的历史数据和支持投注的实时数据。

分层表结构

由于我签署了NDA ,我无法与您分享整个数据结构。同时,了解足球赛季的结构就足以了解这种现实情况。

详细地说,足球提供商通常按如下方式组织赛季中的比赛数据:

  • 季节:有开始和结束日期,通常持续一个日历年
  • 比赛:比赛所属的联赛。竞争的一个实例存在于一个赛季中。[在此处]解有关足球比赛如何运作的更多信息。
  • 阶段:与比赛相关的阶段(例如,资格赛阶段、淘汰赛阶段、决赛阶段)。每场比赛都有自己的规则,很多比赛只有一个阶段。
  • :与阶段相关的组(例如,A 组、B 组、C 组……)。一些比赛,例如世界杯,涉及不同的团体,每个团体都有自己的球队。大多数比赛只有一个通用组适用于所有团队。
  • :从逻辑的角度来看,对应于一天的比赛。它通常持续一周,涵盖了属于一个小组的所有球队的比赛(例如,MLS 有 17 场主场比赛和 17 场客场比赛;因此,它有 34 个回合)。
  • 比赛:两支足球队之间的比赛。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号