如何设计复杂统计查询的导出excel功能?

前提:查询是复杂耗时的比如要几分钟,但是最后结果的数据量是可控的,一般不超过几百行,也就是没必要分页.然后需要一
个导出excel的功能,当然也可以是导出其他的,道理是一样的.

疑惑:
如果每次导出时重新做查询的话,非常的耗时,感觉是一种浪费.用户已经等了几分钟得出查询结果,为什么还要再等这几分钟呢?不太友好.而且对于后台数据库也多一次负担.
如果每次都缓存下来是不是会违反web的无状态原则?呵呵,我是Web方面的新手:)

我的方案:
开始时是把结果存到session里面,如果点导出就会把最后一次查询结果从session里面取出来,然后导出.后来因为数据太大更新不到数据里面去(数据库用的是SQL Server,是遗留系统),改为存到磁盘上.
这个有个问题,就是如果同一个用户,同时执行几个查询,然后再导出,其实只能导出最后一次查询的结果.我现在想的是,给每次查询生成一个唯一ID作为导出链接的一部分,然后结果以这个唯一ID缓存到磁盘上,这样就可以处理同时打开多个查询的情况.缓存数据进行定期清理,比如每过一小时把超过一小时的缓存数据清理掉.

不知道,我这个方案有什么问题,大家都是怎么处理这种问题的?有什么更好的方案吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值