gpt4 book ai didi

MySQL 性能 : views vs. 函数与存储过程

转载 作者:可可西里 更新时间:2023-11-01 07:31:29 25 4
gpt4 key购买 nike

我有一个表格,其中包含一些每小时收集的统计数据。现在我希望能够快速获得每天/每周/每月/每年/总计的统计数据。在性能方面这样做的最佳方法是什么?创建 View ?功能?存储过程?或者在更新数据时我必须同时写入的普通表? (我想避免后者)。我目前的想法是创建一个汇总小时数的 view_day,然后创建一个汇总来自 view_day 的数据的 view_week 和 view_month 和 view_year,以及汇总 view_year 的 view_total。是好是坏?

最佳答案

这里基本上有两个系统:一个收集数据,一个报告数据。

针对频繁更新的事务性表运行报告可能会导致读取锁定,从而阻止写入尽可能快地完成,因此可能会降低性能。

通常强烈建议运行定期“收集”任务,从您的(可能是高度规范化的)交易表中收集信息,并将这些数据填充到非规范化的报告表中,形成“数据仓库”。然后,您将报告引擎/工具指向非规范化的“数据仓库”,可以在不影响实时事务数据库的情况下对其进行查询。

此收集任务应仅在您的报告需要“准确”时运行。如果你每天能逃脱一次,那就太好了。如果您需要每小时或更长时间执行此操作,请继续,但在执行时监控性能对您的写作任务的影响。

请记住,如果您的交易系统的性能很重要(而且通常很重要),请不惜一切代价避免针对它运行报告。

关于MySQL 性能 : views vs. 函数与存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049638/

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