gpt4 book ai didi

mysql - 在MySQL中存储数据以供按日期范围查询

转载 作者:行者123 更新时间:2023-11-29 22:41:21 25 4
gpt4 key购买 nike

我正在尝试在 MySQL 中存储大量数据(相当于 30 年的每日价格),并希望按日、月、年查询它们。

我知道我可以在索引日期字段上使用聚合函数,并且这也将由 MySQL 本身缓存,但我不确定它是否会很昂贵。我还考虑过单独存储每月和每年的数据,但我很确定这违反了规范化规则,并且难以维护。

如果价格昂贵,我打算添加 memcached。我只是想得到一些反馈,而且我确信这已经被一次又一次地完成了。对于这个特定问题有什么最佳实践吗?

更新:

为了提供更多详细信息,数据将显示在图表中,可以按每日、每周、每月、每年范围轻松调整。它目前仍在开发中,我没有足够的数据来确定优化要求。如果是这样的话,您认为我应该推迟优化直到发现问题吗? (可能是过早的优化?)或者是否有一个基线模式来为此类问题做好准备?谢谢。

最佳答案

评论有点长。

数据库结构应由访问数据的要求驱动。您的问题没有解释实际的访问模式是什么。

如果您对月度和年度汇总有性能要求,并且 30 年的日常记录过于详细,那么您可以在数据库中维护汇总。复杂性在于在存储过程或触发器中添加逻辑来维护汇总表。

这是满足性能需求的通用结构。

您也许能够通过一些巧妙的数据结构来满足您的需求。您的问题没有提供有关您真正需要的足够信息。也许表分区可以解决性能问题。也许使用单独的、可索引的年份和月份列可以解决这个问题。也许使用指示一个月或一年的高值和低值的标志可以解决问题(尽管您需要触发器来维护这些值)。

关于mysql - 在MySQL中存储数据以供按日期范围查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329901/

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