Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 维护脚本使加载变慢_Php_Mysql - Fatal编程技术网

Php 维护脚本使加载变慢

Php 维护脚本使加载变慢,php,mysql,Php,Mysql,每次用户访问主页时,我都会在网站上运行脚本。脚本将遍历数据库中的每一行,检查其日期是否已过期,如果为true,则将其存档。但是,由于它有很多行,所以加载主页时确实需要一些时间(比如6秒) 首先,我建议使用cronjob来完成这项任务,但我的老板提出了这个想法,但我离题了 我的问题是,是否可以并行运行脚本,以便在脚本运行时,主页可以继续加载。还要注意的是,主页显示数据库中的数据,因此在主页加载完成之前脚本的执行结束是非常重要的如果每次有访客时都需要运行维护脚本,那么您的站点非常糟糕,一个更好的办法

每次用户访问主页时,我都会在网站上运行脚本。脚本将遍历数据库中的每一行,检查其日期是否已过期,如果为true,则将其存档。但是,由于它有很多行,所以加载主页时确实需要一些时间(比如6秒)

首先,我建议使用cronjob来完成这项任务,但我的老板提出了这个想法,但我离题了


我的问题是,是否可以并行运行脚本,以便在脚本运行时,主页可以继续加载。还要注意的是,主页显示数据库中的数据,因此在主页加载完成之前脚本的执行结束是非常重要的

如果每次有访客时都需要运行维护脚本,那么您的站点非常糟糕,一个更好的办法是修复系统,这样就不需要每秒钟维护一次。如果你每次有访客时都需要运行维护脚本,那么你的站点就很糟糕。一个更好的办法是修复系统,这样就不需要每秒钟维护一次。是否可以并行运行脚本,以便,当脚本也在运行时,主页可以继续加载

对。您可以异步调用维护脚本。通过在维护脚本中设置ignore_user_abort,然后从主页打开该脚本的套接字,然后立即关闭它

然而,若你们仍然想等到维护脚本完成它的工作后再加载主页,那个么这样做是并没有意义的。无论如何,您仍必须等待这6秒钟

所以最好的方法是检查为什么每次都需要运行这个脚本,并尝试优化它

例如,如果您只需要设置所有过期项目,则可以使用单个查询,而不是单独检查所有行。例如:(UPDATE table SET expired=1,其中Expire_date可以并行运行脚本,以便在脚本运行时主页可以继续加载

是的。您可以异步调用维护脚本。通过在维护脚本中设置ignore_user_abort,然后从主页打开该脚本的套接字,然后立即关闭它

然而,如果你仍然想等到维护脚本完成它的工作后再加载主页,那么这样做是没有意义的。你仍然需要等待这6秒钟

所以最好的方法是检查为什么每次都需要运行这个脚本,并尝试优化它


例如,如果您只需要设置所有过期项目,那么您可以只使用一个查询,而不是单独检查所有行。(UPDATE table SET expired=1,其中expire\u date不是一个好主意,您应该使用cron。如果两个不同的用户在几秒钟内到达页面,您将同时执行两次此更新…这是对资源的极大浪费;您应该每天只运行一次,以便首先将您的职位与上司的职位交换。)n:D这不是一个好主意,你应该使用cron。如果两个不同的用户在几秒钟内访问了该页面,你将同时执行两次此更新…这太浪费资源了;而且你应该每天只运行一次,首先将你的职位与你老板的职位交换:D