我现在用java做的一个系统,在点击查询的时候,要同事执行12条select id,count(distinct mainid) from table where time >= *** and time1 < *** and status != 3 等等类似这样的统计sql,也就是说统计都是含有时间等条件的,中间表的方式我认为不行。哪位大神能帮我找一个解决方案。这个表的数据大约在120W左右 还会更多

解决方案 »

  1.   

    distinct换成exists
    !=换成> or <
    在条件字段上创建索引
      

  2.   

    1  从表结构说起。你的每个查询语句都有time。查询方式有点类似报表统计。能否根据time做个分区表?如果表结构上的优化可行的话,整个基础就打好了。2  为什么中间表不行?如果你的查询只是单表的话可能中间表用途不大,如果是多表,中间表还是可以考虑的。3   从语句上讲,优化余地不大。无非是相关字段上有索引,查询条件要走索引等。你注意看从这点有没有可改善的。