12
回答
1000W/日数据 10天实时查询
注册华为云得mate10,2.9折抢先购!>>>   

请问一下  1000W/日数据 要 10天实时查询 结果在8秒内返回 请问有什么好的实现方法 

比如查人数 select count(*) from xxx group by 日期,版本,游戏ID

举报
yintiefu
发帖于4年前 12回/527阅
共有12个答案 最后回答: 4年前

还没说你要怎么查、查什么呢?

--- 共有 2 条评论 ---
Windoze回复 @yintiefu : 更新数据的时候分版本、ID、日期维护一下count不就行了?别说8秒,8毫秒也不用啊…… 4年前 回复
yintiefu比如查人数 select count(*) from xxx group by 日期,版本,游戏ID 4年前 回复

做个伪实时把。非当天的数据可以先统计好。

另外分表也是好办法

--- 共有 1 条评论 ---
yintiefu这个没办法预先统计非当天的 因为有个数据补偿 今天上传的数据可能是昨天的 或者 前天的 4年前 回复

Oracle Exadata,买全套专家服务去为你优化去。

实际上你这话等于没说。没人能从这么点信息中知道怎么给你查询。真要能说明白了,也差不多该付咨询费了。

没别的,现有环境、表结构、物理结构、现有查询时间、需要的查询方式、执行计划、索引,一大堆规划下来才能说如何。

--- 共有 2 条评论 ---
魔力猫回复 @yintiefu : 入门硬件10来万吧,全版本下来要上百万。往后服务费另说,最后这个钱还是美元。我要说一句的是,有多少钱办多少事,有多少事也需要对应的钱。你不能说我手头一台老PC,就要干这个,你们给我方案。1天千万新纪录,那么要求这个我觉得也许可以说有点奢侈,但是绝对不过分。嘴上一说,但是具体环境什么都没有,谁能给出点切实可行的东西来。 4年前 回复
yintiefuOracle Exadata 你知道多少钱 有这个钱还用在这问 4年前 回复

数据库经验尚浅,没具体操作过,仅供参考:

日期字段加索引

查询语句中设定查询日期范围,减少数据库需处理的数据量

升级数据库服务器硬件,优化应用和数据库之间的网络


题主的意思是不是10天内的数据,差不多1亿了,1亿的数据实时查询

首先10天的数据,那就直接拆成10条语句,每个语句只查当天的(最好是分表),再把结果汇总,速度慢就主要慢在当天的活数据吧,如果不考虑锁表,用到了索引,一般来说,1000W数据,group by 也差不多几秒种吧

可以先试试,前9天的数据各自查询时间是多少,如果不能满足,就再把表拆细一点


顶部