0113针对大数据量SUM的优化-思路

转自博客:http://bbs.csdn.net/topics/390426801?page=1

优化思路:无论如何你的结果都是要扫描全有表记录,而在456010记录中,的UserName的分布导致这个索引根本无用!

常用的解决方案是事先把这个统计做好生产一张表。比如安排一个定时任务每 凌晨 01:00 am 来执行这个统计并且放入统计结果表,然后平时查询时就直接从统计结果表中得到结果即可。

 

特别感谢:http://my.csdn.net/ACMAIN_CHM

转载于:https://www.cnblogs.com/qcfeng/p/6282947.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据比对是指在MySQL数据库中对大数据进行比较的操作。在MySQL中,可以使用多种方法进行大数据比对。 首先,可以使用SELECT语句结合WHERE子句来筛选需要比对的数据。例如,可以使用以下语句来选择uid为1的数据,并按照uid降序排列: SELECT * FROM table_name WHERE uid=1 ORDER BY uid DESC; 然后,可以使用mysql_fetch_array函数将查询结果存储为数组$data。可以使用foreach循环遍历数组$data,并输出其中的值。例如,可以使用以下代码连续输出三条记录: $data = mysql_fetch_array($sql); foreach($data as $key=>$val){ echo $val; } 如果只需要输出第三条记录,可以直接输出$data['2']。 另外,如果需要对大数据进行计算,可以使用SUM函数来计算每秒的增加。可以使用嵌套查询和GROUP BY子句来实现。例如,可以使用以下SQL语句来计算每秒的增加: SELECT c.id, SUM(c.VALUE) AS value, DATE_FORMAT(c.time, "%Y-%m-%d %H:%i:00") AS time FROM ( SELECT b.id, (b.item_value - a.item_value) AS value, b.item_timestamp AS time FROM ( SELECT id, item_value, @num := @num + 1 AS row_number FROM ( SELECT @num := 0 ) r, ctc_etl.`1_1_1907/sum.out_2021` WHERE item_timestamp > "2021-12-01 00:00:00" AND item_timestamp < "2021-12-02 00:00:00" ORDER BY id ) a, ( SELECT id, item_value, item_timestamp, @num2 := @num2 + 1 AS row_number FROM ( SELECT @num2 := 0 ) r2, ctc_etl.`1_1_1907/sum.out_2021` WHERE item_timestamp > "2021-12-01 00:00:00" AND item_timestamp < "2021-12-02 00:00:00" ORDER BY id ) b WHERE a.row_number + 1 = b.row_number ) c WHERE c.VALUE > 0 GROUP BY DATE_FORMAT(c.time, "%Y-%m-%d %H:%i:00"); 这个查询语句会计算指定时间范围内每秒的增加,并按照时间进行分组。 综上所述,以上是在MySQL中进行大数据比对的一些方法和示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值