百万级数据count(1)慢怎么处理?

brook_whh 2019-11-28 02:19:15
百万级数据count(1)慢怎么处理?
...全文
1063 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
带我飞的云 2020-05-15
  • 打赏
  • 举报
回复
https://blog.csdn.net/dfy11011/article/details/106143617
乐大师 2020-04-29
  • 打赏
  • 举报
回复
这个数量级应该不是问题。 我针对count()谢过5篇总结文章。这里简单说下: 1.如果表内有自增张字段(最好也是主键),在没有where 的情况且表记录不做删除情况下,可以使用max(主键) 2.如果是有where,取一个区间,可以max(主键)-min(主键)+1来获得 3.count(*)和count(1),根据官方文档说明没有性能区别,建议使用前者 4.count(字段)这种用法,如果字段没有null值,则与count(*)一致;如果有null值存在,其不会统计null行 5.如果不要求精确可以使用explain+sql 来获得估算值,误差大约10%左右; information_schema.`TABLES表内存储有所有表的估算值。
天空张三 2020-04-28
  • 打赏
  • 举报
回复
这个量级的数据mysql无解。 建议你把数据做成宽表,同步到ElasticsearchElasticsearch 最适合做聚合分析。
liangtu 2020-02-29
  • 打赏
  • 举报
回复
在腾讯云上最烂的mysql上,100W条记录,零点几秒。 如果id是自增且连续的的,取max,或者最后一条记录就行。 如果不要求精确,可以查元数据表。
zjcxc 2019-12-31
  • 打赏
  • 举报
回复
正常速度,取决于你的硬件
另外,mysql不支持单查询并行,所以这种处理它的效率很低,你可以尝试自己在程序中并行分段查询
qq_25073223 2019-12-30
  • 打赏
  • 举报
回复
加索引吧! count性能分析
jslqa67 2019-12-20
  • 打赏
  • 举报
回复
刚写完一个同类问题,把写的答案再贴一遍 方法1:改用MyISAM引擎,InnoDB引擎执行count(*)的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数,所以效率低。(语句后面有where条件时候用MyISAM引擎效率也会大打折扣。) 方法2:用 redis 做个计数器 方法3:分表
  • 打赏
  • 举报
回复
看是否用到了 主键索引吧。
sxq129601 2019-12-05
  • 打赏
  • 举报
回复
不带条件可以查tables表
brook_whh 2019-12-05
  • 打赏
  • 举报
回复
都没有这方面的经验吗?现在是700万数据大概统计要7秒左右,不要百度的回单count(字段)>count(1)>count(*)之类的,或者是通过触发器来做,我想学一下大神用mysql碰到一定数量级的情况,是怎么考虑的。
落伍的鱼 2019-12-03
  • 打赏
  • 举报
回复
你这个count不是主键,修改程序增加统计字段
道玄希言 2019-12-02
  • 打赏
  • 举报
回复
百万数据, 就一个count 应该是毛毛雨啊...

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧