Query 성능 측정하기

Query 성능을 측정하는 방법 중 소요 시간을 확인하는 것과 코드 실행 횟수를 측정하는 방식이 존재한다.

이때, SQL에서 자체적으로 소요 시간 및 코드 실행횟수를 알려주는 명령어가 존재한다.

Profile

MySQL(or MariaDB)에서 쿼리가 처리되는 동안 각 단계별 작업에 시간이 얼마나 걸리는지 확인할 수 있는 기능을 제공합니다.

(단, Query Profiling은 MySQL 5.1 이상 버젼에서만 제공하고 있다.)

set profiling = 1;

일단 Profile을 사용하기 위해서 profiling을 사용한다는 명령어를 실행해야 한다.

Mysql Profile 실행

그 후에 하나의 쿼리를 실행한 후, 다음 명령어를 통해 실행 시간을 정확하게 확인해보자.

show profiles;

조회하는 Query문 작성 후 Profile로 확인

만약 하나의 쿼리문이 어떻게 작동했는지 보고 싶다면 QueryID를 활용해서 확인할 수 있다.

show profile for query [QueryID];

show profile for query 명령어를 이용해서 자세하게 쿼리 진행 과정을 확인

Explain

Explain은 MySQL(MariaDB)에서 실행 계획을 알려주는 SQL 문법이다.

explain [Query 내용 작성]

위처럼 SQL을 작성하고 실행하면 다음 사진처럼 나온다.

explain을 통해서 실행계획 출력

  • id : Query의 고유 Id
  • select_type : 쿼리 타입 (simple, primary, subquery 등)
  • table : 접근하는 테이블
  • type : 조인 방식
  • possible_keys : 사용 가능한 인덱스 목록
  • key : 사용한 인덱스
  • key_len : 사용된 인덱스 길이
  • ref : 어떤 속성을 기준으로 인덱스가 사용되었는지 표시
  • rows : 예상 스캔 행의 수
  • Extra : 각종 조건문이 사용되는지 여부를 나타낸다.

참고 자료

https://peterica.tistory.com/177

 

[Mysql] 쿼리튜닝, Query Profiling

ㅁ 개요 ㅇ mysql의 성능향상을 위한 구체적인 지표를 얻을 수 있는 방법을 찾고 있었다. ㅇ profiling을 통해 디비 프로세스의 다양한 성능지표를 확인하여 쿼리 성능을 확인할 수 있다. ㅁ Mysql 버

peterica.tistory.com

https://0soo.tistory.com/235

 

MySQL 실행계획(explain) 정리

MySQL 실행계획 정리 쿼리 튜닝 검토 전, 실행계획(explain)을 보고 실행할 SQL이 DB에서 어떻게 처리될지 파악할 수 있습니다. MySQL 튜닝에서 가장 중요한 것은 쿼리와 스키마 설계인데, 스키마 설계

0soo.tistory.com

https://twinparadox.tistory.com/631

 

MySQL(MariaDB)의 EXPLAIN으로 실행 결과 분석하기

실행 계획이라고 하면, 쿼리가 어떻게 데이터를 불러오는지에 대한 계획을 의미한다. 실행 계획을 통해서 어떤 테이블이 어떤 방식으로 조회됐는지 확인할 수 있다. 조회 쿼리의 인덱스 사용 유

twinparadox.tistory.com

혹시라도 틀린 내용이 있다면 댓글로 알려주시면 감사하겠습니다!!

 

+ Recent posts