[英]Load time is very slow in API while fetching data in Laravel
我正在使用一個簡單的查詢來列出 Laravel 中的所有用戶。
這是我在 Eloquent 中使用的查詢:
$user = User::find(1);
我得到了所有需要的數據,但是得到的時間超過了1.3秒。 在 Doctrine 中使用相同的方法在 300 毫秒內加載數據。
Laravel 中是否有 Eloquent 的問題???
這可能會幫助面臨此類問題的人。 我在 lumen api 后端遇到了類似的問題。 我的 lumen api 大約需要 30-35 秒才能返回約 1500 條數據,而在共享主機上使用原始 php 大約需要 1.2 秒。
我搜索了幾個小時來找到問題,但一無所獲。 Stirdo 的回答讓我有了衡量執行查詢時間的想法。 執行時間表明,雄辯的方法沒有任何問題,問題出在 return 語句內部。 我遵循的創建 api 的教程使用了這樣的東西-
return response()->json([$data]);
我用-
return json_encode($data);
這個簡單的更改將我的響應時間從 ~30 秒縮短到 ~2.5 秒。 可能是 json() 方法只是一遍又一遍地迭代數據以生成 json,這反過來會造成巨大的響應延遲。 因此,如果像我這樣的新手試圖解決 laravel/lumen 的延遲響應問題,這可能會有所幫助。 json()和json_encode() 的參考。
轉到 [您的項目目錄]->laravel->app->config.php 並更改
'url' => '127.0.0.1'
而不是 localhost,看看這是否有什么區別。
如果這不起作用,您可以 為 laravel安裝Clockwork,這將為您提供一個時間線,了解需要這么長時間。
這是我正在談論的時間線的一個例子:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.