之前做后台导出用户数据的功能,我写SQL的时候直接查全表,一次把十万条用户数据全查出来,循环拼成CSV导出,结果执行的时候PHP直接报内存不足错误,脚本跑了半分钟就崩了,根本导不出来。一开始我以为是PHP内存设置太小,把内存上限调到1G,还是跑崩,后来才明白,一次把十万条数据全读进内存,再小的内存也扛不住。 后来我改成分批查询,每次只查1000条,拼到CSV文件里,再查下1000条,循环跑完十万条,整个过程内存占用才几十兆,导出速度还比之前快。从那之后我写任何大数据量的查询,绝对不一次把全表读进内存,全部分批处理,再也没出现过内存爆掉的情况。 很多新手写后台导出、批量处理功能,图省事一次查全表,数据量小的时候没事,等数据量到十万、百万条,直接把内存跑爆,脚本崩了还不知道原因。真的,处理大数据量就分批查,别一次全读进来,不然PHP直接崩,啥也导不出来。
本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。
0