mysql大数据量的统计,太耗时,php超时了

请问,我想做个数据统计的功能,
我先在order表取出order_id,再去order_detail表in(order_id)取出数据
然后在php中,做统计!
现在业务量激增,致使查询一个月的信息统计,就超时了!请问有什么好的优化办法吗?请指教一下!

阅读 6k
3 个回答

分开来一次不要查全部的 比如说你有100W条数据 做统计他也不可能一次看100W条你可以以分页的形式统计或者默认条件统计,这样就不会超时啦

在大数据和联合查询方面,mysql 做的并不好

方法一:

  1. 保证order_id字段都做了索引
  2. 然后通过php控制一条条用 select * from order_detail where order_id = ? 做查询。但要求内存够大

方法二:
1 order和order_detail的数据换到hbase里,做数据统计和时序数据,这是它的强项

新手上路,请多包涵

给你个思路:1.比如12W数据;分4次查询;每次得到一个结果,缓存到redis;求出结果,把这个结果值和此次统计的最后一个orderid值(如果自增)写入一个key;结合crotab每天凌晨统计一次,并更新进redis中;真正执行http请求过来获取统计结果的时候;取出统计的结果 + 之前存下的orderid后面的新数据即可得到数据;可供参考

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题