ABC三张表各有100万数据,根据条件查询出来数据,这数据可以放在第四张表中。!后台用说明方法怎么查询,前台有说明方法怎么显示效率在1秒之内。请高人指点思路不要代码。

解决方案 »

  1.   

    ABC三张表各有100万数据,显示效率在1秒之内,有这么快的查询速度吗,除非先这些数据读到内存里,供程序随时调用。
      

  2.   

    后台要考虑
        1:关联查询使用索引功能(考虑聚集索引和非聚集索引)、
        2:脚本优化(先查询表数据多的关联数据比较少的, where 条件因为数据库从后往前执行,把关联条件紧跟where 后面,  像  col='某个值'的条件放到最后)
        
    前台显示100W条数据1S之内是又可能的,
    这里还是要考虑 where 后面的字段使用哪种索引....
      

  3.   

    后台查询三张表,无非就是根据关联字段进行关联查询,关联字段或者where后面的字段需要合理设置索引。
    前台显示,是要全部都显示出来?那如果三张表cross join或者full join,那么多数据显示出来毫无意思啊,一般都是分页显示。
      

  4.   

    接着解决你的后台怎么查询问题:Insert FourTable(a,b,c,d,e) select a,b,c,d,e from onetable,twotable,threetable where .....楼上都不看清你的问题,应该不是SQL语句查询一秒钟内返回300万条数据,否则取决于你的数据库服务器,假如不是本机操作,还取决于往返带宽,客户端性能。
      

  5.   

    啰嗦几句:
    这个问题应该关注的是网页分页考点。假设问题是要求查询性能:
    1、首先考虑笛卡尔乘积的复杂度,也就是各个表有多少列。假如每个表100列的话,那你去大型机上跑吧。
    2、关注数据分页。假如就两个字段各长8000,那你去高性能服务器上跑吧。
    3、关注数据碎片。假如是一个运作了多年的系统,那你
    4、关注索引,你建的索引是否最优的,可以请教优秀的DBA;
    假设三张表都是两个字段,都是整形字段,各有100万行,不存在碎片,都有簇索引,在一般的PC服务器上运行SQL。一秒钟提取是可以的,到时你会感叹数据库真是强大啊。
      

  6.   

    用游标你死定了。
    首先,要根据业务来定,如果你的3个表都是不会变动的,那么就应该早计算出来,存放到第四个表。直接供查询。不过这个机会比较少,但是你还是可以回答一下。
    第二,一般来说表是会变动的,那么你要考虑的第一个是关联算法:hash、合并、Nested loop各有其用武之地。第二个考虑的是索引。第三个考虑的是where中能否快速减少数据量并利用索引。第四个是select中是否有很复杂的计算。
    最后,如果都不行,那么建议你虚心问一下考官,学习才是重点。并且表现出你好学,好问。问了之后也希望你来这里分享一下