차트 데이터 조회 시 기간별 뉴스 목록을 매핑해야할 때 MySQL, MongoDB성능 비교 (jade) #28
Lcrescent3es
started this conversation in
Deepdive
Replies: 1 comment
-
왜 성능 비교해야하는지 프로젝트 시나리오 기준으로 제목을 작성해주세요 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
프로젝트에서 고려중에 있는 MongoDB에 대해 MySQL과 비교분석할 예정입니다
현재 서비스에서 차트 조회 시 1~5년치 차트 데이터와 각 날짜에 맞는 뉴스 목록을 매핑해서 조회해야합니다.
n명의 유저가 요청을 보낼 때, DB의 데이터를 조회하는데 MySQL과 MongoDB 각각의 DB에서 성능이 어느정도 차이가 나는지 확인하기 위함입니다.
데이터의 변형은 없으며, 순수 Joined select 성능만 비교할 예정입니다.
지표: throughput/s
데이터: chart, news data(1년치, 5년치)
테스트케이스:
chart Read
news Read
chart, news Join Read (1회, 100회, 10000회, 100000회 요청)
------24/08/29(목)------
a. MySQL과 MongoDB 테이블 구조 동일하게 가져간 후 Joined query
b. MongoDB에 뉴스와 차트를 JSON 형태로 저장 후 MySQL만 Joined query
c. MySQL 인덱싱 후 Joined query
난이도별로 추가 주제를 설정했고, 추가 주제는 기존 주제가 완료될 시 단계별로 진행할 예정입니다.
다만, DB 설정을 현재 프로젝트 서버가 아닌, 데이터만 복사하여 개인 RDB, ElastiCache에서 진행해야할지 고려중입니다.
###오늘의 딥다이브 내용 - Overview
a. 트랜잭션 - ACID 속성
- 데이터베이스 시스템에서 트랜잭션이 안전하게 수행된다는 것을 보장한다는 속성
- 원자성 (Atomicity): 트랜잭션과 연관된 모든 작업들이 반드시 실행되거나, 전혀 실행되지 않았다는 것을 의미
- 일관성 (Consistency): 트랜잭션의 작업을 성공적으로 완료하면 데이터베이스를 일관된 상태로 유지
- 고립성 (Isolation): 트랜잭션이 수행 중 다른 트랜잭션의 접근을 허용하지 않음
- 지속성 (Durability): 트랜잭션이 성공적으로 수행되면 결과가 영원히 반영됨 (시스템 문제, DB 관리 체크 등 내부 로직에 의해 변형되지 않음)
장점
단점
a: 분할 내성 (Partition tolerance): 메시지 전달이 실패하거나 시스템 일부가 망가져도 계속 동작
장점
단점
------24/09/12(목)------
TimeTrace
TimeTraceAspect
issue
application.yml
Spring: local (macOS M3 pro)
MySQL: aws RDB
MongoDB: aws Document DB
Redis: aws ElastiCache
단, 기존 DB를 이용하지 않고 새로운 DB를 사용하려면(Redis) 기존 서비스 RDB에 있는 데이터를 새로운 RDB와 Document DB로 옮기는 작업이 필요
------24/09/26(목)------
Beta Was this translation helpful? Give feedback.
All reactions