问题
我的问题是,使用Mysql或Laravel通过查询返回的行数有任何限制吗?
首先我正在使用Laravel 5.2,我试图从我的日志表中检索我的数据,该表最近已经超过10k行,现在从那时起(或者那个时候)通常的laravel语法来检索数据是不行的
语法
$logs = Log::all()
return $logs; //This is then handled by Vue.js on the client side
它过去工作正常,它没有,没有返回任何错误显示在chrome devtools中,只是一个空字符串。
我刚才刚进入数据库,并注意到信息仍然每天都添加到日志中,所以我的代码仍在工作,但是当我尝试检索信息以在客户端显示它时,它不起作用。< / p>
我认为问题是
这让我相信Laravel或MySQL对检索的行数有某些限制?我不知道如何检查我的查询限制以及什么不是。
我做了什么
我已经查看了stackoverflow的答案,但我没有找到任何有用的东西,我遇到过有人说只要表格被正确索引等就可以有900万行。
之前我问过一个问题,但所有答案和建议都不正确,所以希望这些新发现的信息可以解释这个问题。
答案 0 :(得分:0)
问题最终是我的查询Log::all();
正在回收超过1.1mb的信息,而我的服务器限制查询是在1.1mb。两个人帮我识别并解决了这个问题。
@RobertoGeuke:
“您是否可以尝试使用
Log::orderBy('id', 'desc')->take(100)->get();
获取最后100行,看看是否有效?你可以增加 您的
take()
方法,步骤为1000,并查看失败的时间。它会 给极限一个数字,也许会有所帮助。“
这有助于我澄清我的查询是从数据库请求太多信息但我仍然不确定它是行限制还是内存限制。
@SergChernata:
“你可能只是达到内存限制: Laravel Eloquent ORM maximum rows it could retrieve
[增加内存限制?]有很多方法: How to increase memory limit for PHP over 2GB?“
这有助于我指出问题,并且还给了我增加内存限制的选项。