实时变化(每天)的数据来自大量数据的查询,导致加载需要很长时间
程序员文章站
2022-06-02 09:57:53
...
实时变化(每天)的数据来自大量数据的查询,导致加载需要很长时间,请教一下应该如何优化
比如说用户表里有一个用户A 他邀请了很多会员A1,A2,A3..............An ,会员A1 又邀请了很多会员 A11,A12,A13.........A1n
A2邀请了很多会员A21,A22,A23,,,,,,,,,,,,,,,,,,A2n 以此类推 A的直接会员是A1 ,A2,A3 等 间接会员有 A11,A21.....A21,A22.....等 每个会员去消费, 会员自己自己会收到返利,并同时给上级,上上级返利一部分钱,把相关数据插入订单表,每个用户收到来自相关会员的返利7天内不可以提现,算是冻结资金,因此算冻结资金的时候需要查询大量数据, 包括会员自己7天内消费的订单,还要从用户表查找出所有的直接会员和间接会员 然后在找出他们7天内的消费, 所以冻结资金在页面的展示就会加载非常慢,请教一下 如何设计和优化表结构 还是说怎么设计和优化程序才能使速度加快
比如说用户表里有一个用户A 他邀请了很多会员A1,A2,A3..............An ,会员A1 又邀请了很多会员 A11,A12,A13.........A1n
A2邀请了很多会员A21,A22,A23,,,,,,,,,,,,,,,,,,A2n 以此类推 A的直接会员是A1 ,A2,A3 等 间接会员有 A11,A21.....A21,A22.....等 每个会员去消费, 会员自己自己会收到返利,并同时给上级,上上级返利一部分钱,把相关数据插入订单表,每个用户收到来自相关会员的返利7天内不可以提现,算是冻结资金,因此算冻结资金的时候需要查询大量数据, 包括会员自己7天内消费的订单,还要从用户表查找出所有的直接会员和间接会员 然后在找出他们7天内的消费, 所以冻结资金在页面的展示就会加载非常慢,请教一下 如何设计和优化表结构 还是说怎么设计和优化程序才能使速度加快
回复讨论(解决方案)
只要不会出现下级邀请上级的情况,比如 A22 邀请了 A
可使用改型前序遍历(左右值预排序)算法组织数据
只要不会出现下级邀请上级的情况,比如 A22 邀请了 A
可使用改型前序遍历(左右值预排序)算法组织数据
定时跑数据 定时更新 不要实时加载. 这部分的运算使用独立的服务器来处理
网上的介绍很多,你自己搜一下
这篇文章说的还算清楚 http://blog.csdn.net/yaerfeng/article/details/8517479
定时跑数据 定时更新 不要实时加载. 这部分的运算使用独立的服务器来处理
如果每天都有消费,数量比较大 定时更新的话 在一个定时到下一个定时之间会出现数据不准确的情况吧预处理 不要实时统计据算,数据大了实时计算要疯的 早点规划好,免得以后犯愁
有个最简单的方法,给该表添加个字段,记录下一层的用户id,用逗号隔开。这样可以减少一层查询。