请问一下大量的查询是否存在的怎么优化

select
  exists(
    select
      *
    from
      `follows`
    where
      `follows`.`member_id` = 6674124840015757312
      and (
        `member_id` = 6674124840015757312
        and `follow_member_id` = 6680053333551480832
      )
      and `follows`.`deleted_at` is null
  ) as `exists`

这是一个检查好友关系的

member 定义了这个检查好友关系

    public function isFriendships($follow_member_id)
    {
        $member_id = $this->attributes['id'];
        if ($member_id == $follow_member_id) {
            return 2;
        }
        $m = $this->Follows()->where([
            ['member_id', '=', $member_id],
            ['follow_member_id', '=', $follow_member_id]
        ])
            ->exists();

        if ($m) {
            return 1;
        } else {
            return 0;
        }
    }

我在MemberResource api资源的里面查询 导致一堆查询的sql语句 代码怎么写才优雅

   $friendships = $user->isFriendships($this->id);

请教一下大佬怎么优化~

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

我写在了 api资源上~~查询好友关系

3年前 评论
讨论数量: 5

避免子查询,可以将一条语句拆分

3年前 评论

我写在了 api资源上~~查询好友关系

3年前 评论

是否可以考虑下使用缓存呢?

3年前 评论

这样不知道会不会快,而且你这个是否建立了索引?

SELECT
    id 
FROM
    `follows` 
WHERE
    `member_id` = 6674124840015757312 
    AND `follow_member_id` = 6680053333551480832 
    AND `deleted_at` IS NULL
3年前 评论

主要是能不能预加载的方式~~

3年前 评论

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