PHP 请求接口返回json格式数据要1分钟

问题:

查询api接口返回json格式数据要1分钟才能会返回,而且如果查询的数据小,那么返回没问题,如果数据稍微多一点点,就直接炸了。(真的就是1分钟)

条件:

  1. 请求本地API接口,返回JSON格式数据。
  2. 数据库是本地的,分页查询20条数据。
  3. php是7.4版本的,laravel是5.7的

测试过程:

  1. 会不会是SQL查询的问题?
    否定:通过dd($data)打印没问题,能很快的查询出来
  2. 会不会是转json格式的时候转换数据量太大?
    否定:通过打印json_encode($data),数据能正常显示
  3. 测试过数据量小的时候就可以直接,但是多几条数据就直接1分钟才返回

代码和截图

public function getList(Request $request)
    {
        $name = (string)$request->get('name', '');
        $pageSize = (int)$request->get('pageSize', 20);
        $status = (int)$request->get('status', -1);

        $list = Disease::query()
            ->with(['user','file', 'womanPic', 'manPic'])
            ->when($name, function ($query) use ($name) {
                $query->where('name', 'like', '%' . $name . '%');
            })
            ->when($status > -1, function ($query) use ($status){
                $query->where('status', $status);
            })
            ->paginate($pageSize)
            ->toArray();

        return response()->json($list);
    }

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

已解决,最终是由于WSL的原因造成的,根据这篇文章配置过后就正常了。 blog.csdn.net/hjxisking/article/de...

2年前 评论
讨论数量: 8
KayuHo

:sweat_smile:没看懂要表述的啥

2年前 评论

@KayuHo 就是想知道为啥会造成1分钟才返回数据

2年前 评论

我之前发了一个laravel打印sql日志的方法,你拿sql到数据库去慢慢调,调好了再拼orm。

2年前 评论

@bigdaxin sql没任何问题,秒输出,问题是出在返回json数据的时候

2年前 评论

那你检查你的中间件吧。不知道你搞了些啥

2年前 评论

wsl2 win目录下的跨文件系统搭建的环境吗。这个情况是比wsl2内部docker慢10^2的级别。。如果是wsl1 还好一点点。如果完全是wsl2内部环境,是没有这个影响的。

2年前 评论

@滚球兽进化 我是wsl1,使用的php7.3,php7.4也用过,都是一样的问题,当请求返回的数据字节大于8KB过后就会这样

file

2年前 评论

已解决,最终是由于WSL的原因造成的,根据这篇文章配置过后就正常了。 blog.csdn.net/hjxisking/article/de...

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!