上百万的数据做实时统计,怎样优化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 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容