0

これは、クエリを定義した添付コードです。

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人の友達は時間がかかり、関数の応答が非常に遅くなります。

ありがとうスパークス はここでコードリンクを見つけます

4

2 に答える 2

1

ジョインしてみたらどうですか?

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;
于 2013-01-29T11:11:45.103 に答える
0

このような結合を使用できます

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
于 2013-01-29T11:22:10.707 に答える