Laravel搜索结果太慢

时间:2019-01-22 04:15:15

标签: ajax laravel postgresql

我需要在我的网站中建立搜索功能。到目前为止,我已经雄辩地实现了查询。就是这样

`$syukko = Syukko::where('category',  $cat)
->where('status', 1)
->get();`

现在,该网站可能具有大型数据库。我的测试人员对其进行了测试,并报告说它的执行速度太慢。我尝试使用分页显示每页20个结果。速度仍然没有提高。

一个同事建议我使用AJAX。我的问题是AJAX搜索的执行速度是否比pgsql中的基本口才更快? (无需实时搜索)

此外,当前我的机器上没有大型数据库。我编写代码并将其发送给测试人员。我可以使用任何工具获取本地主机的查询时间吗?

2 个答案:

答案 0 :(得分:2)

仅使用ajax不会提高速度,您需要优化查询并正确使用它以提高速度。如@duy said所示,您可以进行索引编制以提高速度。
Laravel分页:默认laravel分页运行计数查询以获取总记录,如果您要查询大型数据库,则可能需要一些时间。
您可以尝试使用自定义分页来提高速度。

function showSearchR(Request $request){
   $page = (isset($request->page))?$request->page:1;
    $limit = 20;
    $offset = ($page-1)*$limit;
    $syukko = Syukko::where('category',  $cat)
    ->where('status', 1)
    ->offset($offset)->limit($limit)
    ->get();
}

要获取查询时间,可以使用laravel查询日志:
通过DB::enableQueryLog();
启用查询日志,然后在执行查询dd(DB::getQueryLog())

后使用此代码

答案 1 :(得分:1)

在这种情况下,必须在categorystatus上创建数据库索引,以提高数据库性能。

Ajax不能大大提高性能,因为最后您应该使用雄辩的语言访问数据库并返回数据。