![]() |
1
4
repeating groups across columns )
正如Geert所说,从概念上来说,两个表就足够了。如果性能是一个问题,你可以去规范化每周/每月统计数据,但我仍然不会像上面那样建模,但我会保留
它可以定期运行以填充每日的\u统计数据。如果您想让它保持最新,您可以在触发器中实现它(或者如果您真的必须这样做,请在应用程序端实现它)。如果需要,还可以在不同级别上对数据进行反规范化(通过创建更多聚合表,或在聚合数据表中引入另一列),但这可能是过早的优化。 上面的设计对于将来的特殊分析(将在stats中发生)来说要干净得多。有关其他好处,请参阅维基百科上的重复组。
编辑:
即使解决方案有两个表
这可能不是最佳解决方案。
更新很容易
更新此表(正确索引)的成本与在表中插入行一样高效
|
![]() |
2
3
在数据库中所做的反规范化可以很好地解决某些问题。然而,在您的情况下,我不会选择上述解决方案,主要是因为您丢失了将来可能需要的信息,也许您希望在未来每隔半小时报告一次。 |
![]() |
3
2
那设计真的很糟糕。我儿子的建议更好。
时间片将日期和时间四舍五入到小时。
|
![]() |
user164863 · 我可以让这个mySQL查询更快吗? 7 年前 |
![]() |
Ronak Patel · mysql-无适当索引的长时间运行查询 7 年前 |
![]() |
Mohd Abdul Mujib · 检查上次查询中是否使用了缓冲区 7 年前 |
![]() |
Ronbear · 更改视图定义可以改进/降低两种不同的查询 7 年前 |
![]() |
Camilo · SQL-如何对15行的组求和并找到最大和 7 年前 |
![]() |
curiousgeorge · 在具有单独更新列的重复密钥更新批上插入 7 年前 |
![]() |
Oblomingo · 如何优化依赖于执行时间的T-SQL查询? 7 年前 |