inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

실무에서 느린쿼리나 벡엔드 성능 테스트하는 방법이 궁금합니다.

125

개발하는 분석가

작성한 질문수 8

0

75강 인덱스 설계 - 실습 관련

강의 중에 느린 쿼리를 로그 분석을 하거나 성능 테스트를 통해서 실제 쿼리 패턴과 성능을 측정해서 특정 컬럼에 인덱스를 적용해야 한다고 하셨는데요.

로그를 하나씩 확인하면서 각 쿼리별로 비교하기가 조금 불편하고 어려울 것 같습니다. 또한 몇가지 쿼리 케이스만으로 성능을 일반화하기도 쉽지 않을 것 같구요.

실무에서 느린쿼리나 다양한 벡엔드 성능 테스트를 수행하는 별도의 모니터링 프로그램이나 방법론이 존재하는지 궁금합니다.

또한 저희 실습에서 사용한 MySQL에서는 어떤 식으로 테스트를 수행하면 좋을지 알려주세요.

sql mysql dbms/rdbms 소프트웨어-설계 SQLD

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 개발하는 분석가님.

느린 쿼리 및 백엔드 성능 테스트와 관련하여 실무에서는 다양한 도구와 방법론이 활용됩니다. 직접적인 로그 분석이나 성능 측정 외에도 자동화된 도구를 사용할 수 있습니다. 대표적인 백엔드 성능 테스트 및 모니터링 도구로는 다음과 같은 것들이 있습니다:

  1. APM(Application Performance Monitoring): New Relic, Datadog, Dynatrace와 같은 도구를 사용하면 애플리케이션 성능을 모니터링하고, 문제를 쉽게 파악할 수 있습니다. 이 도구들은 쿼리 실행 시간을 자동으로 수집하고 시각화하여 제공해 줍니다.

  2. 쿼리 프로파일링: MySQL의 경우 EXPLAIN 명령어를 사용하여 쿼리 실행 계획을 확인할 수 있으며, SHOW PROFILES을 통해 성능 프로파일링을 수행할 수 있습니다. 이는 특정 쿼리의 실행 순서와 시간이 어떻게 배분되는지 이해하는 데 큰 도움이 됩니다.

  3. Slow Query Log: MySQL에서는 slow_query_log 설정을 통해 느린 쿼리를 기록할 수 있습니다. 해당 로그를 분석하여 어떤 쿼리가 시간이 많이 걸리는지 파악할 수 있습니다.

  4. 부하 테스트: 다양한 케이스에서의 성능을 측정하기 위해 JMeter나 Gatling과 같은 부하 테스트 도구를 사용할 수 있습니다. 이를 통해 시스템에 입힐 수 있는 부하를 시뮬레이션하여 서버의 응답 시간을 평가할 수 있습니다.

  5. 지속적인 성능 테스트: CI/CD 파이프라인에 성능 테스트를 통합하여 지속적으로 성능 개선을 추적할 수 있습니다. 이는 새로운 코드 배포 후에도 성능이 유지되는지 확인하는데 유용합니다.

관련 유사 질문을 통해 더 많은 힌트를 얻으실 수 있을 것입니다. 다음 링크를 확인해보세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아주 작은 정오표 전달드립니다.

0

52

2

실제로 작은 기업에서 기획 롤

1

27

1

order_product 까마귀발

0

44

2

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

53

1

자연키 vs 대리키 실무질문

0

28

1

1:N 관계에서 중간테이블 (연관엔티티)

0

57

2

일대일 fk 위치

0

43

1

제 3 정규형 vs BCNF 정규형 차이점?

0

106

3

BCNF 질문

0

78

2

연관 엔티티 네이밍 규칙

0

54

1

진짜 강의 듣는거 너무 고문

0

140

1

28강 sql 파일 어딨나여?

0

94

1

2NF의 엄밀한 정의

0

74

1

comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.

0

124

3

학습중인 수업자료를 받아볼 수 있을까요??

0

103

2

수업자료 pdf파일관련 건의 - 제목 링크위치 개선

0

88

2

서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문

1

108

2

실무적인 설계로 접근했을 때 제 2정규형 항상 만족?

0

82

1

슈퍼/서브 타입 joined 전략

0

74

2

created_at 관련 구현과 DB ENUM에 대해

0

75

1

M:N 관계의 연관 엔티티 설계 순서

0

81

2

데이터 역사성 훼손 문제

0

67

2

실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.

0

84

1

구글이 이메일 변경을 허용하는 이유

0

126

1