求大神语句优化[谢谢大家,答案选不过来了,就每人点赞了]

朋友的项目可能数据量过大,然后超时了,有优化空间么。

vqmfq1.png

理想的光照不到现实的黑暗,明灯是黑夜中的奢侈品。如果你接受不了真实生活千疮百孔的消极,那么,请移步儿童区...
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
陈先生
最佳答案

可以考虑一下 lazy 或者 chunk

1年前 评论
讨论数量: 24

explain,或者拆分 SQL,分表都可以,需要根据业务自己判定

1年前 评论
working (楼主) 1年前
Ghwolf (作者) 1年前
Ghwolf (作者) 1年前
working (楼主) 1年前
Ghwolf (作者) 1年前

为啥连分页都没

  AntsScore::query()
            ->where()
            ->with(['user:username,id','num:user_id,id'])
            ->withCount('num')
            ->get()
            ->toArray();
1年前 评论
working (楼主) 1年前
风吹过有夏天的味道 (作者) 1年前

可以说下你这不分页get一次性拿多少数据嘛

1年前 评论
working (楼主) 1年前
lyxxxh 1年前
working (楼主) 1年前

一次性拿,数据太多,始终会卡的。,如果是实时处理的话,分页慢慢的把数据拿出去组合起来。如果是有树层级的,可以层级数据异步拿取

1年前 评论
deatil (作者) 1年前
working (楼主) 1年前

使用chunk分块查询,试试能行不

1年前 评论
随波逐流

chunk + cursor 可以尝试下

1年前 评论
陈先生

可以考虑一下 lazy 或者 chunk

1年前 评论

如果找不到数据,toArray() 会出错的

1年前 评论
chowjiawei 1年前
chowjiawei

那些方法 我感觉都不如 直接在这个题目表 加个 答题次数的字段 一劳永逸 要不然count 总是慢的 越多越慢

答题一次 就+1 就好了 原有的数据兼容可以用Artisan命令统计赋值到新字段。

1年前 评论
pardon110

数据库加索引,不要一次性全查,分段异步查,用原生查询语句

1年前 评论

可考虑下冗余字段。建议db操作尽量只简单查询,后期系统扩展会很容易。

1年前 评论

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