
checkAttendance()里面有个for循环,userList大概有一百多个用户,这样一循环,结果就是最后那个res_arrays肯定是很大的,时间也比较长,有办法解决这个问题吗?
程序应该没问题,我在where后面加上限制条件,比如只有几个用户的时候就可以算出来的。
代码是这样的,打了一些码,希望不影响。。
http://pic.027cgb.cn/20170303...
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
换到服务器上跑没问题了....谢谢各位大大回答~
谢邀!
对于数据量大的首先如果有field最好限制field,而且可以分批处理,每次取5000(固定数量):
最后大批量的数据最好文件开头加上:
实现什么功能?
按道理几百个用户循环没什么问题的,看一下你的checkAttendance()方法里面,拖慢了运行速度
在PHP文件开头添加:
这样即便超时,服务器也会允许程序继续执行
可以 sleep 几秒 然后 for循环的话 不如换成foreach 适量的做做优化 能加缓存就缓存 S 方法还是不错的
看了一下,你的
checkAttendance()方法里面还有查询SQL,首先检查一下SQL执行速度,另外可以在循环的外层一次性查出数据后在来php做过滤筛选,数据量大的情况下做分次查询。我觉得这个情况下,即使Php脚本一直在运行,但是你的web服务器应该会超时的,我觉得这样的操作不太好,应该改成异步的。下发这个任务,然后页面用ajax定时拉取一下执行结果,回显到页面给用户看比较好。