실습 - 타임라인 구현 흐름
- 회원의 팔로우 목록 조회
- 1번의 팔로우 회원 id로 게시물 조회
시간 복잡도 계산해보기
Follow 테이블과 Post 테이블이 있음
- 1번 id를 가진 타임라인 요청을 처리하는 과정을 살펴보자
- from이 1번인 개체를 조회
- 해당 개체의 to 개체를 뽑아서 to의 id들로 게시물을 조회
시간복잡도
인덱스가 있다는 가정하에 (Follow, Post 둘다)
log(Follow 전체 레코드) + 해당 회원의 Following * log(Post 전체 레코드)
- to 가 OR이기 때문에 해당 회원의 Following 수만큼을 곱하게 된다.
Fan Out On Read (Pull Model)
읽는 시점에 Fan Out을 시킨다.
- 사용자가 매번 홈에 접속할 때마다 부하가 발생
- 따라서 팔로워수가 많을 수록 점점 느린 타임라인을 경험
2023 KAKAO Tech Campus_BackEnd 필수 과정
DB(MySQL) 강의 정리 내용입니다.
'CS > 데이터베이스' 카테고리의 다른 글
타임라인 최적화 - 06. 타임라인에서 배우는 트레이드 오프 (0) | 2023.06.06 |
---|---|
타임라인 최적화 - 04. 팬아웃 타임라인 이론 (0) | 2023.06.06 |
타임라인 최적화 - 01. 타임라인이란? (0) | 2023.06.06 |
페이지네이션 최적화 - 05. 커버링 인덱스 (0) | 2023.06.06 |
페이지네이션 최적화 - 03. 오프셋 기반 페이징 구현의 문제(1) (0) | 2023.06.06 |