문제

내가 할 것입니다 마이크로 블로깅(웹 서비스를 위한 학교 폭발 나의 부족을 위해 새로운 아이디어)나는 걱정하는 DB 될 수 있는 종종 오버로드(사용자가 다음과 같은 다른 사용자 또는 태그 그래서 나는 suppouse SELECT 무거운 것입니다 확인-20 일 최신 메시지를 포함하는 모든 관찰하는 태그의 사용자).

내 아이디어를 만들의 또 다른 테이블에 저장하시만 statusID 및 userID(는 사람을 선택해야 하는 메시지가).의 위험이 있는 경우,일부 꼬리표 또는 사용자가 많은 추종자들이 있을 것이 많이 기록으로는 상태 ID 입니다.그래서,그것은 좋은 생각입니까?나 어쩌면 더 나은 사용 M2M 관계는?(하나의 상태->많은 수신기)

도움이 되었습니까?

해결책

내가 생각하는 대부분의 데이터베이스를 쉽게 처리할 수있는 큰 기록 설정합니다.책임 있는 그것은 예비적 형성품에있는 당신의 디자인으로 제대로 설정하는 인덱스입니다.을 만들면 오른쪽에 인덱스를 선택 절를 수행해야 합니다....

다른 팁

나는 함께 갈거야 사용자 테이블, 사용자와 M2M 관계를 갖는 테이블 메시지 테이블.

그런 다음 사용자가 팔로우하는 모든 사용자를 찾은 다음 1 초를 찾을 수 있습니다. 선택하십시오 관심있는 모든 메시지를 얻기 위해 (결과를 정렬하고 제한). 이것을 태깅으로 확장하는 것은 매우 간단해야합니다.

이 디자인은 올바른 열을 색인하는 한 많은 사용자와 메시지에 적합해야합니다. 방대한 경우 사용자 테이블 및 메시지 테이블을 다른 서버로 실행하거나 복제 전용을 읽을 수도 있습니다. 나는 지금 그것에 대해 걱정하지 않을 것입니다 - 당신은 거대해야 할 것입니다.

Collabinate를 구현할 때 (http://www.collabinate.com), 마이크로 블로깅 및 공유 활동 스트림을위한 서비스 기반 엔진 인 나는 그래프 데이터베이스를 사용했습니다. 사람들이 게시물을 만들고 다른 사람들을 팔로우한다는 사실은 그래프 구조에 적합합니다. 올바른 관계와 알고리즘을 사용하면 매우 효율적이고 성능이 좋은 솔루션이 될 수 있습니다.

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