通过模型生成的 SQL 查询语句问题?

通过模型生成的SQL语句如下图,如果我这有一万个用户,那这里面的 in 是不是也有一万个 ID 呢?
file
如果这样的话,那后期的查询效率是不是也会受影响?

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

有分页的嘛,想得有点多了。

5年前 评论
讨论数量: 4
DianWang

有分页的嘛,想得有点多了。

5年前 评论

@DianWang 这选中的部分SQL语句是通过预加载的查询语句,如果加上了分页,那显示Topic的数据是不是不全了。

$topics = Topic::with('user', 'category')->paginate();
5年前 评论
DianWang

@JxMarco 看下paginate()的源码,比我解释更有用

5年前 评论
 public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
    {
        $page = $page ?: Paginator::resolveCurrentPage($pageName);

        $perPage = $perPage ?: $this->model->getPerPage();

        $results = ($total = $this->toBase()->getCountForPagination())
                                    ? $this->forPage($page, $perPage)->get($columns)
                                    : $this->model->newCollection();

        return $this->paginator($results, $total, $perPage, $page, [
            'path' => Paginator::resolveCurrentPath(),
            'pageName' => $pageName,
        ]);
    }

$page = $page ?: Paginator::resolveCurrentPage($pageName);
如果不传入参数,会自己获取分页参数或者默认值

5年前 评论

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