mysql sum10万数据_mysql sum count 性能优化 ----测试数据22万条

原语句:

select

sum(sale_price) as account_money,

count(distinct point_card_no) as use_count,

sum(add_point_value) as point_sum

from tb_rm_coupon_point

where

delete_flg='0' and add_point_datetime >='2019/05/13' and add_point_datetime < '2019/05/20'

执行时间:时间为24.9秒

2ab5b40acbba5df9f88cfbf6ae2d1102.png

结果:

895e765387617122eee7fc6d5ebf0b2c.png

注:tb_rm_coupon_point 此表有295288条数据

2fed0a35a9a83aaa35519040be2c9680.png

此语句扫描了24032条数据 得到了结果and用了索引扫描

8c8477051f8c6273bc80d3d9371baa31.png

改进查询方法:

语句:

SELECT

SUM( CASE WHEN add_point_datetime >='2019/05/13' and add_point_datetime < '2019/05/20' THEN

sale_price ELSE 0 END) as 'account_money',

SUM( CASE WHEN add_point_datetime >='2019/05/13' and add_point_datetime < '2019/05/20' THEN

add_point_value ELSE 0 END) as 'point_sum',

count( CASE WHEN add_point_datetime >='2019/05/13' and add_point_datetime < '2019/05/20'

THEN  true ELSE null END) as 'use_count'

FROM  tb_rm_coupon_point where delete_flg='0'

执行时间为:10秒左右   相比快了15秒

df1fbdb6ffc8d6ee6739a52a8a1e59ae.png

3263747

原文出处:https://www.cnblogs.com/csjdaima/p/10875460.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值