我们有一个 SaaS 解决方案,其中每个租户都有自己的 MySQL 数据库。现在我正在设计这个SaaS系统的仪表板,它需要一些分析图表。为了获取图表所需的数据,我们可以从每个租户的数据库中实时查询其交易数据。并获得更新的图表,没有不良性能,因为到目前为止数据量还没有那么大。然而,由于数据量会不断增长,我们决定将每个公司的分析数据和交易数据分开,我们将在后台获取图表的分析数据,保存/缓存它们并定期更新。我的问题是:
在决定是否需要从一开始就包含数据仓库和数据建模,或者只是将 API 生成的图表的分析数据缓存在新表的 JSON 列中之前,我们应该考虑哪些好的问题或因素每个租户的 MYSQL 数据库中的图表。
不要进入“事实”表中的数百万行,而是构建并维护一个汇总表,然后从中获取数据。它的运行速度可能是原来的 10 倍。
由于额外的表,这确实需要更改代码,但这可能是值得的。
汇总表
换句话说,如果数据集变得大于X,汇总表是最好的解决方案。缓存不会有帮助。硬件还不够。 JSON 只会造成妨碍。
根据一年的数据点(每秒一个)构建一年的图表既缓慢又浪费。根据每日小计构建一年的图表要合理得多。