上百万的数据做实时统计,怎样优化1s之内返回结果?
需求:每天产生的增量数据有几百万条,针对下方的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个回答
test
2024-07-02
可以用 Clickhouse 的 MySQL 后端,也可以直接同步到 Clickhouse 内部,取决于你的实时性;
实时性最高的方案是,插入 MySQL 的时候,把行数用 Redis 缓存起来,来一条数据就+1,只统计行数的话,这样速度最快;
回复
适合作为回答的
- 经过验证的有效解决办法
 - 自己的经验指引,对解决问题有帮助
 - 遵循 Markdown 语法排版,代码语义正确
 
不该作为回答的
- 询问内容细节或回复楼层
 - 与题目无关的内容
 - “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容