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操作.

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top