今天帮客户修复数据导不出来的BUG,真的是兜兜转转坑到不要的。之前同事使用的是PHPExcel插件导出,我还特意提醒过,不要用这个插件,不听。今天磨难就降临到我身上了,他请假了!!!请假了!!!o(╥﹏╥)o。
来说正文吧,坑列表如下:
坑一:PHPExcel这个插件之前就已经证实过了,不适合大数据(3000以上吧)的导出,超过3000以上的数据128M的运行内容(PHP配置的)直接内存溢出,有网友说(把内容调高),结果就是只要一导出数据那整个服务器基本就宕机了,内存都被PHP拿去运行PHPExcel插件了,正确的解决就是换导出的方式。
请选择:csv(你会喜欢上他的,不需要插件,支持大数据导出,操作简单)
坑二:数据的导出建议各位不要将“数据查询”+“数据导出”两个业务直接一个方法处理,为啥呢?今天亲自踩的坑,访问方法直接404。单独测验过数据量(6000+)、数据查询响应(0.034S,0.24S,0.031S)、数据处理响应页面(700~800ms),但就是这么一个看似无害的东西+“数据导出”直接404响应,超时响应。最后迫于无奈,分步走,第一步,生成数据暂存Redis。第二步,下载报表,Redis中取出数据导出。完美解决
坑三:是之前关于CSV的导出坑,数据导出后发现数据与标题存在错乱,本来应该再A1列的数据却在A2列这样的现象,原因也很简单:导出数据时,整个数组的索引排列有关。
今天就自我吐槽到这里了,拜拜了您嘞~