mysql count 加速_mysql count 性能优化,mysql count(*)优化

1.很多人认为count查询非常快,但是在加上筛选条件那就是未必的了!

测试:user表中4000w数据

(1).SELECT  count(*)   from user;   用时0.00s

(2).SELECT  count(*)   from user  where id>1000;   用时7秒

为什么统计全部速度快,不统计全部却慢了?因为mysql默认已经统计过表中的总记录了,所以查询非常快

2.优化count案例.假设需要查询数据中user表id大于1000的数据,如何快速查询?(上面的查询用时7秒!)

select ((SELECT  count(*)   from user) -(SELECT  count(*)   from user  where id<1000));

原理:需要id大于1000的人数=总人数-id小于1000的人数(总人数mysql秒完成,id小于1000的人数记录少查询快)

3.以上的方法只是解决了部分场景,假如现在需要统计用户注册渠道呢?假设注册渠道有QQ和微信,并且2种渠道注册人数一致,数据达到百万.

那么 SELECT  count(*)   from user  where way='qq';和 SELECT  count(*)   from user  where way<>'qq' 无区别.

这种情况就建议建立统计表,用户注册事件发生即可+1操作.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值