Laravel 5查询真的很慢

时间:2016-07-21 10:10:16

标签: mysql laravel-5

我是laravel的新手,我不确定我做错了什么,因为我的查询需要很长时间才能运行。

我有大约35000条记录,请参阅下面的一个查询示例,大约需要23秒才能加载页面(请参阅下面的屏幕截图链接)。

Screenshot

任何人都可以建议我的错误或更好的方式来查询我的数据库。我尝试过Eloquent,它比DB :: Query慢几毫秒。

$data3 = DB::table('toutcome')

            ->where('CompletedDate', '>=', \Carbon\Carbon::now()->startOfMonth())
           ->join('tapplicant', 'tapplicant.AppID', '=', 'toutcome.AppID')
            ->select(DB::raw('DATE_FORMAT(CompletedDate, "%d %M %Y") as CompletedDate, 
                              SUM(AffID = "MW0050") as leadccount50,
                              SUM(AffID = "MW0051") as leadccount51, tapplicant.AppReference'))
            ->groupBy(DB::raw('DATE_FORMAT(CompletedDate, "%d %M %Y")'))
            ->get();

2 个答案:

答案 0 :(得分:0)

您是否直接在数据库中测试了原始查询?如果查询也很慢,你可以尝试在它上面使用EXPLAIN来帮助找到添加索引的位置和重写位置。我不知道你的表看起来如何,我的第一个猜测是减速与分组相关

答案 1 :(得分:0)

首先听起来很长。

查询看起来非常详细,但不应超过1分钟。

您可以尝试使用eloquent,但这只会比原始查询快一点。

你没有提到的事情是:

这是本地服务器还是远程服务器?如果您使用的是远程服务器,我的解决方案是使用" skip-name-resolve"在mysqld下的my.ini / my.cnf中,更新你的key_buffer_size。

如果这不能提高速度,可以查看该特定服务器的资源。