subindev 님의 블로그

RDBMS vs NoSQL - 채팅 서비스 성능 비교 (JMeter 활용) 본문

프로젝트/[Team]🥇 A+ Market 중고 거래 플랫폼 앱

RDBMS vs NoSQL - 채팅 서비스 성능 비교 (JMeter 활용)

subindev 2025. 2. 7. 10:58

RDBMS(MySQL) vs NoSQL(MongoDB) - 채팅 서비스 성능 비교

채팅 기능을 구현하며 MySQL을 사용하던 ChatMessage 테이블을 MongoDB로 마이그레이션한 후, 성능을 비교하였습니다.

JMeter(버전 5.6.3)을 사용하여 1000개의 스레드MySQL과 MongoDB에서 채팅 메시지를 저장(Insert) 및 조회(최근 30개 메시지)하는 요청을 실행하였습니다.

 

💡 테스트 환경

  • DB의 종류를 제외한 로직은 동일함.
  • MongoDB와 MySQL 둘 다 동일한 복합 인덱스 존재
  • 메시지는 더미 데이터 약 2만 개가 존재

 

 

📌 JMeter를 이용하여 성능 분석한 결과

 

 

📌 테스트 결과 비교

1. 평균 응답 시간 (Latency

평균 응답 시간 5,757 ms 3,971 ms MongoDB가 약 31% 더 빠름
최대 응답 시간 10,092 ms 7,623 ms MongoDB가 2,469ms 더 짧음
최소 응답 시간 867 ms 85 ms MongoDB가 훨씬 빠름

➡ MongoDB가 평균, 최대, 최소 응답 시간 모두 우수

 

2. 처리량 (Throughput)

처리량 90.2 req/sec 116.0 req/sec MongoDB가 약 28.6% 더 많은 요청 처리

➡ MongoDB가 초당 처리하는 요청 수가 더 많음 → 성능적으로 더 우수

 

3. 네트워크 트래픽

수신 KB/sec 370.32 KB/sec 664.56 KB/sec
전송 KB/sec 11.36 KB/sec 15.29 KB/sec
평균 바이트 수 4205.0 bytes 5866.7 bytes

➡ MongoDB가 더 많은 데이터를 송수신하지만, 성능은 더 좋음


📌 결론

이번 테스트 결과, MongoDB가 MySQL보다 평균 31% 더 빠르고, 처리량도 28.6% 더 높았습니다.

➡ 채팅 서비스처럼 대량의 데이터를 저장하고 빠르게 조회해야 하는 경우, MongoDB가 더 적합합니다.

➡ 최적의 설계는 MySQL과 MongoDB를 적절히 조합하여 사용하는 것입니다.

 

👉 비교적 데이터가 적은 Chat Room 및 Chat Mapping은 RDBMS(MySQL)를 사용하고, 대량의 메시지를 빠르게 조회해야 하는 경우에는 NoSQL(MongoDB)를 활용하였습니다.