在数据库中处理统计的最好方法?



我正在研究一个现有的项目(Angular/Symfony),我需要做一个体积部分,在这个部分中,我将根据几个标准显示不同的图形,并在同一页面上有更多的过滤器。

我的数据库包含大约10年的数据,每天更新。

我想知道什么是最好的方式来消费这些数据,并显示它而不降低性能,最重要的是有一个全局视图的所有更改。(历史)

我们是否应该使用基于固定日期的归档系统,例如每周/每月…

?我看到有些是基于时态表的,有些是基于DB分区的。

处理这个问题的最好方法是什么?

  • 如果您要清除"old"数据,就是PARTITIONing。否则,分区不太可能提高性能。http://mysql.rjweb.org/doc.php/partitionmaint

  • 为了更快地访问汇总数据(例如,"去年"的图表)数据),建立和维护汇总表。http://mysql.rjweb.org/doc.php/summarytables通常,这样的表中每天会有一行。你可能想要最近一个月的更细粒度的信息;我们可以讨论细节。

  • 存档吗?目的是什么?我们可以在这里讨论这些选项的利弊。

最新更新