Php 一段时间后,Laravel artisan命令停止

Php 一段时间后,Laravel artisan命令停止,php,apache,laravel,laravel-artisan,Php,Apache,Laravel,Laravel Artisan,我使用的是Laravel5.1,希望更新mysql表,它有将近20万行。它更新了近25000行,之后就不再更新了。更新此内容几乎需要1个半小时 有什么建议吗 您首先要检查的东西很少 php错误日志中会出现哪些错误(超时错误、内存不足错误等) mysql错误日志中有哪些错误 您的内核是否会杀死长时间运行的进程(如中的进程) 例如,如果脚本在同一位置停止一致更新,则该特定语句的SQL中可能存在错误。因此,请确保您正在检查mysql返回给PHP的任何错误(请参阅和中的错误处理手册) 如果您通过PH

我使用的是Laravel5.1,希望更新mysql表,它有将近20万行。它更新了近25000行,之后就不再更新了。更新此内容几乎需要1个半小时


有什么建议吗

您首先要检查的东西很少

  • php错误日志中会出现哪些错误(超时错误、内存不足错误等)
  • mysql错误日志中有哪些错误
  • 您的内核是否会杀死长时间运行的进程(如中的进程)
例如,如果脚本在同一位置停止一致更新,则该特定语句的SQL中可能存在错误。因此,请确保您正在检查mysql返回给PHP的任何错误(请参阅和中的错误处理手册)


如果您通过PHP一次运行一个200000个不同的SQL查询,那么它肯定会很慢,因为您将在每个查询中执行SQL解析器、查询执行和结果获取步骤。有一些更快的替代方法,例如,它绕过MySQL中的整个解析器和查询执行步骤,允许您直接从CSV写入数据库对象文件。这对于立即将大量数据加载到数据库中非常有用,速度非常快。

您检查了错误日志。我想,您说过25000个原始数据会很好地更新,并且会在停止之后更新。更新时可能会导致某些数据库行传递错误。如果可以逐个检查更新表,则可以对其进行验证

例如:第一次更新1-2000,下一次更新2000-40000。当更新20000-250000范围仅通过错误时,这意味着您的程序正常,db entry通过错误。但在增加负载时,按块执行正常。它可以帮助您测试您的程序是否能够处理负载。这是一种测试方法


您的程序可能会很慢,因为有大量的数据收集,这还取决于您的计算机或服务器或开发环境的性能。尝试重新调整或优化代码以提高性能。您也可以尝试使用非关系数据库(mongodb),这可能会给您在处理大量数据时提供很好的时间。我认为这可能有助于您解决问题。

最初它每秒更新6-7行,速度不断降低,几乎为零。最初它每秒更新6-7行,速度不断降低,几乎为零。