문제

100 명을 따른다 고 가정 해

그런 다음 100 개의 조인 명세서가 필요합니다.

내가 생각하는 데이터베이스에 끔찍한 일입니다.

아니면 다른 방법이 있습니까?

도움이 되었습니까?

해결책

왜 100 개의 조인이 필요한가요?

당신은 당신의 신분증과 다른 사람의 신분증으로 간단한 테이블을 "팔로우"할 것입니다 ...

그런 다음 다음과 같은 것을 결합하여 "트윗"을 검색합니다.

Select top 100 
    tweet.* 
from 
    tweet 
inner join 
    followers on follower.id = tweet.AuthorID 
where 
    followers.masterID = yourID

이제 괜찮은 캐싱이 필요하고 잠금 쿼리를 사용하고 모든 정보가 있는지 확인하십시오 ... (아마도 userData를 믹스에 추가 할 수 있습니다).

편집하다:

트위터

ID - tweetid
AuthorID - ID of the poster

추종자

MasterID - (Basically your ID)
FollowerID - (ID of the person following you)

그만큼 Followers 테이블에는 마스터를 기반으로 합성 ID가 있습니다 followerID"Mas

다른 팁

실제 비결은 데이터베이스 사용량 (예 : 캐시, 캐시, 캐시)을 최소화하고 사용 패턴을 이해하는 것입니다. 트위터의 특정 사례에서, 그들은 대기열에서 얻은 다양한 기술, 미미한 메모리 캐싱 및 일부 영리한 데이터 흐름 최적화를 사용합니다. 주다 스케일링 트위터 : 트위터를 10000 % 더 빨리 만들었습니다 그리고 다른 관련 기사는 읽습니다. "Follow"구현 방법에 대한 귀하의 질문은 데이터를 비정상화하는 것입니다 (즉석에서 조인을 수행하는 대신 조인 테이블을 미리 계산하고 유지 관리) 또는 데이터베이스를 전혀 사용하지 마십시오. <-- 이것을 읽으십시오!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top