【发布时间】:2019-08-28 18:35:53
【问题描述】:
我有一个非常奇怪的问题,我无法理解。 我将 Laravel 用于我的后端应用程序,我在表上运行一个非常简单的查询,其中包含 30k 条记录,所有记录都带有适当的索引。 这是查询:
DB::select('select * from Orders where ClientId = ?', [$id])
在 Laravel 应用程序中,此查询运行 1.2 秒(如果我使用 Eloquent 模型,情况也是如此。):
"query" => "select * from Orders where ClientId = ?"
"bindings" => array:1 [▼
0 => "44087"
]
"time" => 1015.2
问题是,如果我在数据库控制台或 PHPMyAdmin 中运行相同的查询,查询大约需要 20 毫秒。
我不明白这怎么可能,因为我使用的是相同的数据库、相同的查询、相同的计算机以及与数据库的相同连接。
可能是什么原因?
【问题讨论】:
-
很可能您在 php → html 中呈现数据,这导致了速度缓慢。通常,laravel 和控制台的查询时间几乎相同。您是否尝试过使用 dd($queryresult);并检查时差。如果有 30k 条记录,您应该使用分页。
-
@Saurav,我只获取几条记录,因此不需要分页。另外,我用 DD 函数转储数据,没有 html 或 php 渲染。
-
你能提供这些(匿名的)30K 记录吗?
-
您确定是查询需要这么长时间还是您的应用程序中的其他问题?
-
@Thomas 就是这样,因为我有空的 Laravel 应用程序,只有这个查询在运行。
标签: php database laravel eloquent