Skip to content

Latest commit

 

History

History

db-comparison

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

DB 성능 비교 테스트

  • 상황에 맞는 데이터베이스를 선택하기 위해서 각 데이터베이스의 성능 측정
  • 기본적으로 관계형 데이터베이스를 활용할 때 성능이 떨어지는 것을 알고있지만 직접 테스트하고 비교해보기 위해 진행
    • 다수의 생성, 조회 작업이 진행될 때 트랜잭션으로 인해 성능이 떨어질 것으로 예상

종류

  1. MySQL
  2. Mongo DB
  3. Redis

실험 1

Insert 50000건 (Vuesrs: 10, Run count: 5000)

image

image

image


구분 TPS Peak TPS Mean Test Time(ms) Run Time
MySQL 459.8 562 20.78 00:01:56
Mongo 1075.7 1663 6.73 00:00:54
Redis 1180 1937 5.57 00:00:50
  • 단순 삽입 작업에서 Mongo와 Redis의 성능이 우월한 것을 확인할 수 있음
  • 다만 현재 실험에서는 50000건을 저장하는 것만을 테스트했지만 다량의 데이터, 영속적인 보관을 고려했을 때 다수의 삽입 및 저장에는 Mongo DB를 선택하는 것이 좋을 것으로 생각

실험 2

Select 50000건 (Vuesrs: 10, Run count: 5000)

  • 특정 아이디를 기준으로 단건 조회

image

image

image


구분 TPS Peak TPS Mean Test Time(ms) Run Time
MySQL 881.2 1196 8.22 00:01:05
Mongo 1125 1602 6.65 00:00:51
Redis 1377 2040 5.20 00:00:42
  • 역시 조회 시에는 Redis의 성능이 우월하다
  • 캐시를 괜히 사용하는 게 아니다. 따라서 순수하게 DB에만 저장하고 조회를 하기보다는 적절하게 Cache를 사용하자

실험 3

Select 50000건, Insert 50000건 (Vuesrs: 10, Run count: 5000)

  • 번갈아가면서 실행

image

image

image


구분 TPS Peak TPS Mean Test Time(ms) Run Time
MySQL 394.1 449 24.42 00:02:14
Mongo 709.7 945 11.27 00:01:17
Redis 916.2 1259 8.35 00:01:01
  • 읽기/쓰기 작업을 동시에 진행하다보니 관계형 데이터베이스(MySQL)에서는 성능이 매우 떨어지는 것을 확인할 수 있음
  • 테이블간의 결합이나 정해진 관계가 구체적이지 않은 경우, 다수의 삽입/조회 작업이 있는 경우 비정형 데이터베이스를 사용하는 것이 좋음