我现在数据库里面有一个表,3个小时就有3亿的数据,已经分区,也按要求加了索引了~现在单挑查询的话,速度很快,分了页的,1秒内可以查询出来,但是统计的话,和时间无关了,需要统计一个星期的数据,我现在统计3个小时的所有数据,都要10分钟左右,请问有什么好方法解决吗?希望能在1分钟内~

解决方案 »

  1.   

    数据量这么大,1分钟怕是没希望
    可以建个job,比如每小时运行1次,把1小时的统计数据存到1个表里,以后的统计查询在这个表上做
      

  2.   

    你这些统计应该不用太精确的,比如你可以接受的误差范围是1个小时,那么可以这样做:基表A物化视图B(创建表时指定nologging,每个小时增量刷新):select * from A where 你筛选的数据范围;物化视图C(创建表时指定nologging,基于B的on commit refresh):select 网站ID,count(1) from A group by 网站ID;
      

  3.   

    关键不是查询,而是统计。
    在源表中,统计 + 查询,明显不合适。建议 源表 -> 统计表 -> 分析查询
      

  4.   

    有  group by 的物化视图是不可以用增量刷新的啊~楼上的,这样说就是要2个表了?但是我们插入也是有速度要求的,一天好像是5个T的数据,要全部插完,现在插入那块他们都没解决速度问题~