在Laravel中获取数据时,API中的加载时间非常慢

时间:2015-04-29 11:23:37

标签: php laravel eloquent

我使用简单查询列出Laravel中的所有用户。

这是我在Eloquent中使用的查询:

$user = User::find(1);

我获得了所有必需的数据,但获得的时间超过1.3秒。在Doctrine中使用相同的内容时,会在300毫秒内加载数据。

在Laravel中是否有任何Eloquent问题?

2 个答案:

答案 0 :(得分:1)

转到[您的项目目录] - > laravel-> app-> config.php并更改

'url' => '127.0.0.1'而不是localhost,看看是否有任何区别。

如果这不起作用,您可以安装Clockwork for laravel,这将为您提供如此长时间内的最新动态。

以下是我所谈论的时间表的一个例子:

enter image description here

答案 1 :(得分:0)

这可能会帮助面临此类问题的人。我在lumen api后端也遇到过类似的问题。我的流明API花费了大约30-35秒才能返回〜1500数据,并且在共享主机上使用原始php花费了大约1.2秒。

我搜索了几个小时才找到问题,但什么也没发现。吉列的答案给了我一个想法,可以用来衡量执行查询的时间。执行时间表明,雄辩的方法没有什么问题,而是问题在return语句内部。我遵循的用于创建api的教程使用了类似这样的内容-

return response()->json([$data]);

我将其替换为-

return json_encode($data);

这个简单的更改将我的响应时间从大约30秒提高到了大约2.5秒。可能是json()方法只是一遍又一遍地迭代数据以生成json,这反过来又造成了巨大的响应延迟。因此,如果像我这样的新手正在尝试使用laravel / lumen解决延迟响应问题,这可能会有所帮助。 json()json_encode()的参考。