在laravel中测试查询执行时间

时间:2017-01-19 15:16:26

标签: php mysql laravel phpunit

如何在laravel / phpunit中测试查询执行了多长时间?

是否有可能不依赖其他东西?

4 个答案:

答案 0 :(得分:14)

最古老的方式是最好的方式:

$start = microtime(true);
// Execute the query
$time = microtime(true) - $start;

答案 1 :(得分:4)

由于Laravel 5.2 listen已更改为只有一个参数:

\DB::listen(function ($query) {
     // $query->sql
     // $query->bindings
     // $query->time
});

文档:https://laravel.com/docs/5.2/database

答案 2 :(得分:0)

您可listen执行此类查询并将结果记录在storage/logs/laravel.log

\DB::listen(function ($sql, $bindings, $time) {
    \Log::info($sql, $bindings, $time);
});

您只能使用$time,但我已记录$sql, $bindings, $time以完成。

您可以将其放在AppServiceProvider

<强>更新

在Laravel版本中&gt; 5.5此方法在文档中记录为listening for query events;)

答案 3 :(得分:0)

您可以从Laravel 6.x开始使用ddd($someVar)帮助程序。

Queries标签,用于描述直到ddd()

执行的每个查询