프로젝트/[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를 적절히 조합하여 사용하는 것입니다.