Java의 currentTimeMillis를 활용한 MariaDB와 MongoDB 간의 INSERT 성능 측정

LeeYulhee·2023년 10월 6일
0

👉 Java SpringBoot에서 성능을 측정하는 간단한 방법


  • System.currentTimeMillis()를 활용하여 DB의 INSERT 성능 비교



👉 System.currentTimeMillis() 의 기능


  • Java에서 제공하는 메서드
  • 현재 시각을 1970년 1월 1일 00:00:00 (UTC)부터의 밀리초로 반환
  • 주로 성능 측정, 타임 스탬프 생성, 기간 계산 등에 활용



👉 성능 측정하는 코드 예시(INSERT)


public ChatMessage createAndSave(String content, Long userId, Long chatRoomId, ChatMessageType type) {

    ChatRoom chatRoom = chatRoomService.findByRoomId(chatRoomId);

    User sender = userService.findById(userId)
            .orElseThrow(() -> new IllegalArgumentException("유저가 아닙니다"));

    ChatMessage chatMessage = ChatMessage.create(content, sender.getId(), sender.getUsername(), sender.getAvatar(), type, chatRoom.getId());

	// 성능 측정 시작 :  repository save 직전에 입력
    long start = System.currentTimeMillis();

    ChatMessage savedChatMessage = chatMessageRepository.save(chatMessage);

	// 성능 측정 종료 :  repository save 직후에 입력
    long end = System.currentTimeMillis();

    log.info("MongoDB 쓰기 : {} ms", (end - start));

    return savedChatMessage;
}
  • end 시간에서 start 시간을 뺀 값(save하며 소요된 시간)을 터미널 로그로 확인할 수 있음



👉 결과 화면


  • 터미널에서 로그를 통해 측정된 시간을 확인할 수 있음



👉 측정 결과


  • 연속적으로 빠른 채팅이 발생했을 때 MongoDB는 MariaDB보다 평균적으로 약 53% 더 빠른 성능을 보였음
    • MariaDB는 중간에 한 번씩 오래 소요되는 경우가 있어서 평균 시간이 더 오래 걸림
profile
공부 중인 신입 백엔드 개발자입니다

0개의 댓글