Laravel App继续对每个请求执行相同的查询

时间:2020-10-19 04:54:49

标签: laravel laravel-6

此查询始终与每个请求一起执行,从而广泛影响性能

select * from `users` where `id` = ? limit 1'

我有一个laravel应用,我试图通过使用DB:listen这样在AppServiceProvider中监视执行的查询

 public function boot(Request $request)
 {
    DB::listen(function ($query) {
        Log::debug(['query' => $query->sql]);
        Log::debug(['bindings' => $query->bindings]);
        Log::debug(['time' => $query->time]);
    });

    if (env('HTTPS_ENABLED',false)) {
        URL::forceScheme('https');
        $request->server->set('HTTPS', true);
    }
 }

现在在laravel.log文件中,我对每个请求都有相同的查询,有时相同的查询会因相同的请求而执行多次,这对性能来说是一个过大的选择

laravel.log结果

[2020-10-19 07:39:31] local.DEBUG: array (
 'query' => 'select * from `users` where `id` = ? limit 1',
)  
[2020-10-19 07:39:31] local.DEBUG: array (
'bindings' => 
 array (
 0 => 1,
), 
[2020-10-19 07:39:31] local.DEBUG: array (
 'time' => 1205.1,
)

我尝试检查auth()->id() auth()->user()是否对中间件有效,但没有设法从代码库中的哪个位置执行此查询,所以请您建议我如何在不停止的情况下停止它影响应用程序的流程,或者至少从完全执行此查询的位置开始,所以我停止了它并使用jwt,而不是请求db来获取每个请求的用户。

谢谢。

0 个答案:

没有答案
相关问题