Php Laravel雄辩聚合(最大)返回500服务器错误

Php Laravel雄辩聚合(最大)返回500服务器错误,php,mysql,laravel-5,Php,Mysql,Laravel 5,我以前使用它从Elount模型中获取MAX recordID。不幸的是,当数据库表行数超过20k时,它将返回500个内部服务器错误 我已经检查了laravel.log和apache错误日志,但没有得到任何线索 在那之后,我试着呼应“XXX”;退出();在我的代码的每一行之前,我发现exit()stop在这一行之后运行 $lastRecord_sync = \App\TableModel::all()->max('record_id'); 然后我试着换到下面,效果很好 $lastRecor

我以前使用它从Elount模型中获取MAX recordID。不幸的是,当数据库表行数超过20k时,它将返回500个内部服务器错误

我已经检查了laravel.log和apache错误日志,但没有得到任何线索

在那之后,我试着呼应“XXX”;退出();在我的代码的每一行之前,我发现exit()stop在这一行之后运行

$lastRecord_sync = \App\TableModel::all()->max('record_id');
然后我试着换到下面,效果很好

$lastRecord_sync = DB::table('tms_door_record_raw')->max('record_id');
我可以知道这里的问题是什么吗?SQL与Elount Model和DB Query builder是否不同?

此代码:

$lastRecord_sync = \App\TableModel::all()->max('record_id');
正在告诉laravel将表中的所有记录作为一个集合检索,然后获取该集合中的max
record\u id
(请参见:),大概是通过在整个集合上循环来实现的,如果有许多记录,这可能会非常慢

第二段:

$lastRecord_sync = DB::table('tms_door_record_raw')->max('record_id');
正在告诉laravel基本上执行此查询(请参阅:):


MySQL查找max记录的效率要比PHP遍历集合中的每条记录并在其中查找max
record\u id
的效率高得多。

第一行检索应用程序中的所有记录,然后应用max。这是低效的(正如您已经注意到的),PHP是否在30秒后没有超时?
SELECT MAX('record_id') FROM table;