基本情况:
1. 在C/S模式的应用中,客户端向服务器发出查询的请求指令,服务器响应该请求,去后台数据库执行一个查询,并将查询结果返回给客户端。
2. 该查询为一多表联合查询,且数据量巨大(可能上百万);
3. 服务器要根据一定条件对查询结果做过滤,将符合条件的数据返回给客户端(有一种情况是所有数据都符合条件);
4. 面临的问题是:客户端发出请求后,感觉服务器数据返回缓慢,基本上瓶颈在于后台数据库的查询速度缓慢。具体要求:
如何改善该种情况,可以使得处理速度上去呢?
我想通过临时表的方式来尝试一下,具体就是将查询结果放到临时表中,如何再从该临时表取数据,但是不知道是否可行。因为感觉上又添加了一层处理,似乎还会造成效率的进一步下降。不知道大家是否遇到过类似情况,有的话是如何解决效率问题的呢?

解决方案 »

  1.   

    数据量巨大(可能上百万);
    其实不算多的.
    你可以建立索引,还有可以优化一下你的程序,一般返回数据多的话你可以先返回一部分比如100条,就像分页那样返回
      

  2.   

    先看看查询语句有没有可能再优化,提高查询速度,再考虑服务器上过滤数据的程序,是不是对时间的开销很大,最后才考虑优化数据库方面
      

  3.   

    你可以看一下是数据库查询语句慢,还是数据从服务器传到客户端慢。
    数据库查询语句慢,就看是索引建的合理不?一般情况,数据库查询只要索引建的合理,查询起来不会很慢的。
    我估计是由于大量的数据从应用服务器传到客户端,到时用户感觉很慢,这样就要考虑每次少传送数据,或者压缩后传送。