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

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

vqmfq1.png

一个偏向心理学即将转向产品的码农
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

可以考虑一下 lazy 或者 chunk

2年前 评论
讨论数量: 24

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

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

为啥连分页都没

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

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

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

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

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

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

2年前 评论
随波逐流

chunk + cursor 可以尝试下

2年前 评论

可以考虑一下 lazy 或者 chunk

2年前 评论

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

2年前 评论
chowjiawei 2年前
chowjiawei

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

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

2年前 评论
pardon110

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

2年前 评论

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

2年前 评论

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