Fan Out On Read
- Pull Model 이다.
- 조회 시점에 부하가 있음
Fan Out On Write (Push Model)
- write 시점에 fan out을 한다.
- 핵심 개념 : 게시물 작성시, 해당 회원을 팔로우하는 회원들에게 데이터를 배달한다.
3번 유저가 게시물을 작성
- **Fan Out On Write (Push Model)**에서는 Timeline이라는 별도의 테이블이 생기게 됨
- 유저가 게시물을 작성하는 시점에 해당 유저의 follow을 찾게 된다.
1번 유저(해당 유저의 follow)에게 해당 유저의 게시물을 배달해줌 → Timeline table에 게시물을 insert 해주는 것(게시물이 작성되는 시점에)
1번 유저가 게시물을 작성
follow 테이블에서 1번 유저의 follow하고 있는 유저를 찾음
3번 유저(해당 유저의 follow)에게 해당 유저의 게시물을 배달해줌 → Timeline table에 게시물을 insert 해주는 것(게시물이 작성되는 시점에)
조회 시점
- 타임 라인 조회시에는 Timeline 테이블을 조회하여 게시물들 조회
- 팔로워 수가 많은 유저도 시간에 부담이 없음 (OR 조건을 제거함으로써 부하를 줄임)
- Pull 모델에서의 조회시점의 부하를 쓰기시점의 부하로 치환 (Timeline 테이블에 배달을 해줘야하기 때문)
2023 KAKAO Tech Campus_BackEnd 필수 과정
DB(MySQL) 강의 정리 내용입니다.
'🔍 CS > 데이터베이스' 카테고리의 다른 글
데이터 정합성 보장을 위한 트랜잭션 이해하기 - 01. 트랜잭션이 없는 세상은 (0) | 2023.06.06 |
---|---|
타임라인 최적화 - 06. 타임라인에서 배우는 트레이드 오프 (0) | 2023.06.06 |
타임라인 최적화 - 03. 서비스가 커질수록 느려지는 타임라인 (0) | 2023.06.06 |
타임라인 최적화 - 01. 타임라인이란? (0) | 2023.06.06 |
페이지네이션 최적화 - 05. 커버링 인덱스 (0) | 2023.06.06 |