database - 使用什么数据库来统计/报告数据?

标签 database nosql

我的应用程序是一种 POS 系统。 问题出在报告上。每个产品、每个餐 table 、每个员工、类别的销售额。拥有 1 年日期范围报告非常慢,因为它们必须对大量行进行求和等。所以我想知道 no-sql 数据库是否可以提供帮助,例如每天进行摘要等。但也许这并不容易,因为可能有针对每个项目*产品*类别*人员等查询。那我能做什么?

最佳答案

如果您对关系数据库感到满意,我建议您坚持使用它们,并为您常用的报告使用每日聚合表。

例如,如果想要制作按产品编号分组的销售报告,请找出您要查找的统计数据(即销售数量),并将原始数据按产品编号汇总到按日大小的“存储桶”中。

+-----------+------------+------------+-------+-------+
| salesdate | productNum | totalSales | stat2 | stat3 |
+-----------+------------+------------+-------+-------+

如果您在每天结束时进行日大小的存储桶,则每月只有 30 个存储桶用于报告,或每年 365 个存储桶。总结起来要快得多。我在构建仪表板(小时大小的存储桶)时使用网络性能指标来完成此操作,并且它大大减少了查询时间。如果需要,您始终可以深入挖掘原始数据,但对于想要一目了然的普通用户来说,聚合的存储桶就足够了。

您还可以考虑将汇总表放入单独的数据库中。

请记住,如果您的某个统计数据处于平均值,则一系列平均值的平均值并不是整个范围的平均值。

关于database - 使用什么数据库来统计/报告数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026617/

相关文章:

c# - 离线应用-数据库

java - 开源图数据库

mongodb - NoSql 中的分层数据表示 - 设计选择

mongodb - 从 mongo shell 读取文件

ruby - 使用 Mongoid 按日期分组的最佳方式

从关系数据库构造类的 Python 库? (反向ORM)

mysql - 我想借助 LIKE 语句显示 `ADSTech` 的结果

database - 使用 SQLWorkbench 列出 redshift 中的表

mysql - 当在子查询之外实现 WHERE 时,子查询 LIMIT 会导致问题

firebase - 从 Firebase 中的节点查询多个用户帖子的有效方法