日期:2014-05-17  浏览次数:20901 次

查询效率问题!!!!
我现在用java做的一个系统,在点击查询的时候,要同事执行12条select id,count(distinct mainid) from table where time >= *** and time1 < *** and status != 3 等等类似这样的统计sql,也就是说统计都是含有时间等条件的,中间表的方式我认为不行。哪位大神能帮我找一个解决方案。这个表的数据大约在120W左右 还会更多
------解决方案--------------------
distinct换成exists
!=换成> or <
在条件字段上创建索引
------解决方案--------------------
有人在吗 ?
------解决方案--------------------
1  从表结构说起。你的每个查询语句都有time。查询方式有点类似报表统计。能否根据time做个分区表?如果表结构上的优化可行的话,整个基础就打好了。

2  为什么中间表不行?如果你的查询只是单表的话可能中间表用途不大,如果是多表,中间表还是可以考虑的。

3   从语句上讲,优化余地不大。无非是相关字段上有索引,查询条件要走索引等。你注意看从这点有没有可改善的。
------解决方案--------------------
自己顶一下。