关于查询条数重复次数过多?

file

debug偶尔发现这里的sql查询重复次数太多了,是什么原因导致的?不需要减少一下查询的次数么?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

在视图文件resources/views/topics/show.blade.php的用户回复列表里,添加预加载即可,具体如下:
将大概70行左右的

@include('topics._reply_list', ['replies' => $topic->replies()->with('user')->get()])

改成

@include('topics._reply_list', ['replies' => $topic->replies()->with('user', 'topic')->get()])

具体如图:
file

5年前 评论
讨论数量: 3

在视图文件resources/views/topics/show.blade.php的用户回复列表里,添加预加载即可,具体如下:
将大概70行左右的

@include('topics._reply_list', ['replies' => $topic->replies()->with('user')->get()])

改成

@include('topics._reply_list', ['replies' => $topic->replies()->with('user', 'topic')->get()])

具体如图:
file

5年前 评论

4.5章节中有 N+1 问题,通过使用预加载功能,解决关联数据查询次数过多。

5年前 评论

在视图文件resources/views/topics/show.blade.php的用户回复列表里,添加预加载即可,具体如下:
将大概70行左右的

@include('topics._reply_list', ['replies' => $topic->replies()->with('user')->get()])

改成

@include('topics._reply_list', ['replies' => $topic->replies()->with('user', 'topic')->get()])

具体如图:
file

5年前 评论

@xinhuo 懒加载,相当于做了个缓存,不用重复取数据库取新数据,只需要拿缓存的数据,也就是说本来n次加载的东西,现在一次就可以搞定

5年前 评论

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