내 사이트의 친구 모듈로 사용자가 서로 친구를 사귈 수 있습니다. 이가 "친구"에 저장되어있는 friendship_inviter과 사물의 거부/승인 끝에있는 사람이되는 우정을 시작한 사람, 테이블 friendhsip_accepter더 빠르게 실행되도록이 쿼리를 어떻게 최적화 할 수 있습니까?
SELECT user_id, user_name, user_gender
FROM friends
LEFT JOIN users
ON ( users.user_id = friends.friendship_inviter
OR users.user_id = friends.friendship_accepter)
WHERE (friendship_inviter = '125' OR friendship_accepter = '125')
AND user_id !='125'
AND friendship_level = 1;
이 풀 테이블 스캔이에게이며, 테이블이 크지 않더라도 (15,000 명의 사용자, 3000 명의 우정) 평균 1 ~ 1.5 초가 소요됩니다.
서버에 부담을주지 않는 방법으로 현재 친구 목록을 출력하려면 어떻게해야합니까?
user_id는 문자열이 아닙니까? 그렇다면 엄청난 imporvement를위한 int로 만듭니다. – flukus