如何优化此查询以快速加载好友


how to optimize this query to load friends fast

这是我在那里定义的附加代码查询。

SELECT
  is_facebook_user,
  fname,
  lname,
  profilenam,
  mem_id,
  gender,
  profile_type,
  photo_thumb,
  photo_b_thumb
FROM members
WHERE mem_id IN(SELECT DISTINCT
          mem_id            AS frnd
        FROM network
        WHERE mem_id = '$userId'
             OR frd_id = '$userId')
ORDER BY profilenam;

在这里,我想尽快获取朋友。我也在mem_id和frd_id上应用了索引,但仍然有2500个朋友需要很长时间,函数打印的响应非常慢。

谢谢火花在此处查找代码链接

加入怎么样?

SELECT
  m.is_facebook_user,
  m.fname,
  m.lname,
  m.profilenam,
  m.mem_id,
  m.gender,
  m.profile_type,
  m.photo_thumb,
  m.photo_b_thumb
FROM members m
  join network n
    on m.mem_id = n.mem_id
WHERE n.mem_id = '$userId'
     or n.frd_id = '$userId'
ORDER BY m.profilenam;

你可以像这样使用联接

SELECT
  is_facebook_user,
  fname,
  lname,
  profilenam,
  mem_id,
  gender,
  profile_type,
  photo_thumb,
  photo_b_thumb
FROM members
  left join (select
           distince   mem_id
         from network
         where mem_id = '$userId'
          OR frd_id = '$userId') as e
    on e.mem_id = members.mem_id