일단 DB를 무엇을 사용할 것인가...
1. key - value DB
redis :
데이터를 1차적으로 램에 저장.
보조 DB로 자주 쓰는 데이터는 redis 에 복사본을 두고 redis에서 응답해 데이터 응답.
빠른 서비스 구현이 가능
ex) 자주쓰는 데이터 캐싱, 채팅을 위한 pub / hub, 영상 스트리밍, 로그인 기록 저장
2. RDBS (일반적 사용)
Stackoverflow 2022 사용 통계
1. MySQL
2.PostgreSQL
3. SQLite
정확도와 일관성이 중요할 때( 금융 )
ACID Transaction 기능이 있어, 정확도가 매우 중요하면 RDBS
3. Graph DB
neo4j:
데이터 간의 관계도 함께 다룰 수 있다.
ex) 비행기 노선, SNS 친구관계, 코로나 전염맵, 추천 서비스
4. Document DB (일반적 사용)
mongoDB:
입출력이 매우 잦을 때
JSON 형태로 저장, 데이터 중복 제거 안함(정규화 x)
데이터 분산 처리에 좋지만, 데이터 간의 일관성이 떨어질 수 있다.
ex) SNS, 실시간 채팅, 게시판, 온라인 게임
5. Column-family DB
cassndra, google cloud Bigtable
정규화 없음, 데이터 일관성 부족
복제, 분산처리에 강점, 많은 입출력이 있을 시 사용
Netflix 에서 유저 시청기록 분석시 사용
6. Search engine
elastic, Amazon CloudSerch, google Cloud Search
검색용 인덱스를 보관하기 위한 보조 DB
검색이 중요한 서비스에서 사용
ex) 실시간 검색어, 추천 검색어, 검색어 오타교정