2016-07-21 69 views
0

我是新来laravel和im不知道如果我做了一些不正确的事,因为我的查询需要很长时间才能运行。Laravel 5查询真的很慢

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

Screenshot

谁能劝了我的错误或更好的方法来查询我的数据库。我已经尝试过Eloquent,并且比DB :: Query慢了几个ms。

$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(); 
+0

你知道mysql查询缓存的概念吗?尝试实施它。第一次需要时间才能执行,但下一次调用相同的查询时,执行速度将提高约3倍 –

回答

0

首先,这听起来很长。

查询确实看起来相当详细,但不应超过1分钟。

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

事情你没有提到是:

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

如果这不提高速度,也许看看你的资源为特定的服务器。

0

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