请问,我想做个数据统计的功能,我先在order表取出order_id,再去order_detail表in(order_id)取出数据然后在php中,做统计!现在业务量激增,致使查询一个月的信息统计,就超时了!请问有什么好的优化办法吗?请指教一下!
3 回答
![?](http://img1.sycdn.imooc.com/54586870000183e302200220-100-100.jpg)
牧羊人nacy
TA贡献1862条经验 获得超7个赞
在大数据和联合查询方面,mysql 做的并不好
方法一:
- 保证order_id字段都做了索引
- 然后通过php控制一条条用 select * from order_detail where order_id = ? 做查询。但要求内存够大
方法二:
1 order和order_detail的数据换到hbase里,做数据统计和时序数据,这是它的强项
![?](http://img1.sycdn.imooc.com/54dc06a60001ef0401000100-100-100.jpg)
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
给你个思路:1.比如12W数据;分4次查询;每次得到一个结果,缓存到redis;求出结果,把这个结果值和此次统计的最后一个orderid值(如果自增)写入一个key;结合crotab每天凌晨统计一次,并更新进redis中;真正执行http请求过来获取统计结果的时候;取出统计的结果 + 之前存下的orderid后面的新数据即可得到数据;可供参考
- 3 回答
- 0 关注
- 1023 浏览
添加回答
举报
0/150
提交
取消