我的网络应用程序中有一份实时,可过滤的报告,该报告查询了MySQL中的贷款和贷款支付清单。目标是在表格行中显示每笔贷款,然后在表格列中显示其贷款支付清单,每列表示当天贷款支付的总和。我们还允许用户选择日期范围和聚合级别(每日/每周/每月)。如果用户选择了日常聚合的Sept 1-3,结果将如下所示:
Loan ID | sept 1 | sept 2 | sept 3
---------------------------------------
0001 | $350 | $239.45 | $112
0002 | $100 | $0 | $75
2个数据库表是贷款和付款,其中付款存储贷款ID,日期和每笔付款的金额。
当我们在60天范围内运行此查询时,结果是约45秒的响应时间。然后,我们尝试创建自己的预聚合表,每年366列(贷款ID +每日日期列表示当天的付款总额)。这将响应时间增加到> 60秒。这甚至不包括每周或每月汇总,甚至更慢。
我们怎样才能加快速度呢?我们理想地寻找10-15秒的响应时间,并且我已经尝试了我找不到的每种缓存/索引技术。
答案 0 :(得分:0)
您应该与业务部门讨论60列表的业务要求或实际应用是什么?
对于Sep1-3示例,结果表看起来很好,但是对于60天的日期范围?谁会看这张桌子?将数周或数月分组会更好吗?
如果贷款数量有限