본문 바로가기
  • 포르쉐타고싶다
인포테인먼트 - development/sql

[MySQL] MySQL 프로파일링 - 쿼리문 성능 비교

by 지오ㄴl 2020. 4. 10.

서버는 쿼리문을 통해 데이터베이스와 네트워킹을 한다.

이 때, 같은 결과물이라도 쿼리문을 어떻게 짜냐에 따라 성능, 즉 클라이언트의 대기시간이 결정되고

이는 결국 어플의 존속문제에도 큰 비중을 차지한다.

 

같은 결과물들을 위한 다양한 방법의 쿼리문을 짜는데

각각의 쿼리문의 네트워킹 비용, 대기시간 같은 성능을 체크하는 방법 하나를 소개하겠다.

 


1. 네트워킹 시간 : MySQL 프로파일링.
이 기능은 각각의 쿼리문의 걸린시간들을 리스트 혹은 상세한 시간을 기록해서 보여준다.

2. 네트워킹 비용 : Last_query_cost
이 기능은 각각의 쿼리문에 드는 총 비용(cpu 용량 등)을 보여준다.
비용과 걸린 시간은 비례하지 않는다. 비용이 커도 걸린 시간은 적을 수 있다.

 

사용법은 이러하다.

 

1. 프로파일링 기능을 켠다
set session profiling = on;

 

2. 측정하고자 하는 쿼리문 실행
3. cost 확인

(1) 걸린 시간 보기

show profiles;

 

를 통해 여태까지의 쿼리문 걸린 시간들을 리스트로 보여주어 비교를 할 수 있고

show profile

 

를 통해 마지막 쿼리문의 걸린 시간을 상세하게 볼 수 있다.

 

 

(2) 걸린 비용 확인

SHOW STATUS LIKE 'Last_query_cost';

 

로 마지막쿼리문을 실행하는 데 드는 비용을 확인, 비교할 수 있다.

반응형

댓글