我的应用程序是一种 POS 系统。 问题出在报告上。每个产品、每个餐 table 、每个员工、类别的销售额。拥有 1 年日期范围报告非常慢,因为它们必须对大量行进行求和等。所以我想知道 no-sql 数据库是否可以提供帮助,例如每天进行摘要等。但也许这并不容易,因为可能有针对每个项目*产品*类别*人员等查询。那我能做什么?
最佳答案
如果您对关系数据库感到满意,我建议您坚持使用它们,并为您常用的报告使用每日聚合表。
例如,如果想要制作按产品编号分组的销售报告,请找出您要查找的统计数据(即销售数量),并将原始数据按产品编号汇总到按日大小的“存储桶”中。
+-----------+------------+------------+-------+-------+
| salesdate | productNum | totalSales | stat2 | stat3 |
+-----------+------------+------------+-------+-------+
如果您在每天结束时进行日大小的存储桶,则每月只有 30 个存储桶用于报告,或每年 365 个存储桶。总结起来要快得多。我在构建仪表板(小时大小的存储桶)时使用网络性能指标来完成此操作,并且它大大减少了查询时间。如果需要,您始终可以深入挖掘原始数据,但对于想要一目了然的普通用户来说,聚合的存储桶就足够了。
您还可以考虑将汇总表放入单独的数据库中。
请记住,如果您的某个统计数据处于平均值,则一系列平均值的平均值并不是整个范围的平均值。
关于database - 使用什么数据库来统计/报告数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026617/