【问题标题】:Count number of queries in each page load of Laravel 5计算 Laravel 5 的每个页面加载中的查询数
【发布时间】:2016-12-09 20:44:19
【问题描述】:

我试图通过侦听查询事件来实现这一点,但我似乎不知道我是如何获得计数的。这只是检索查询列表,因为无法修改回调函数以返回计数变量:

DB::listen(function ($query) {
    var_dump('<pre>'.$query->sql.</pre>);
});

我需要一个解决方案来计算 Laravel 执行的每个页面的查询。

【问题讨论】:

  • 您可以使用$queries = DB::getQueryLog();,但您应该先启用日志:DB::connection()-&gt;enableQueryLog();
  • 当我想在生产中使用它时我应该这样做吗?
  • 不建议仅用于调试!你可以使用if (App::environment('local')) { DB::enableQueryLog(); }
  • 但我需要这个用于生产站点中的特定用户
  • Laravel 可以选择将所有为当前请求运行的查询记录到内存中。请注意,在某些情况下,例如在插入大量行时,这可能会导致应用程序使用过多的内存。 -> Doc

标签: database laravel laravel-5


【解决方案1】:

超级老问题,但是当我在这里寻找一种方法时,这就是我最终的结果。似乎不是获取计数的内置方法,但只需执行此类操作即可满足您的需求;

$count = 0;
DB::listen(function ($query) use (&$count) {
    $count++;
});

您可能希望将计数存储在更合适的位置,但这会让您和任何其他从 Google 来到这里的人大致了解。

【讨论】:

  • 为我工作!!
猜你喜欢
  • 2012-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
相关资源
最近更新 更多