上百万的数据做实时统计,怎样优化1s之内返回结果?

作者站长头像
站长
· 阅读数 7

需求:每天产生的增量数据有几百万条,针对下方的sql逻辑,怎样可以实现极短时间内,就完成结果的统计?不限于sql本身的优化,而是希望提供解决这种问题的思路或设计方案,可以引用各种技术或架构

select count(t.X), max(t.Y)
  from myTable t
 where t.insert_date =?  --每天产生的数据总量有几百万
   and t.A = ?           --然后还要过滤其他各种的条件,条件的值可以动态传入
   and t.B > ?
   and t.C < ?
回复
1个回答
avatar
test
2024-07-02

可以用 Clickhouse 的 MySQL 后端,也可以直接同步到 Clickhouse 内部,取决于你的实时性;

实时性最高的方案是,插入 MySQL 的时候,把行数用 Redis 缓存起来,来一条数据就+1,只统计行数的话,这样速度最快;

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容