본문 바로가기
MySQL

MySQL mysqldumpslow 사용법 slowquery 분석방법

by payy 2023. 12. 27.
반응형

 

 

mysqldumpslow 는 mysql 에 기록되고 있는 slow 쿼리들을 분석하여 사용자에게 유용한 레포트 제공하는 툴이다.


slow query 는 long_query_time 에 기록된 시간으로, 1초라면 1초 이상 실행된 쿼리들을 slow query 에 로깅한다.

 

일반적으로 mysqldumpslow는 숫자 및 문자열을 제외하고 유사한 쿼리들을 그룹화하여 사용자에게 보여준다.

대략 운영중인 slow query log 에는 수n 개의 쿼리가 기록되기도 하는데, mysqldumpslow 툴은 쿼리들을 그룹화해서 통계를 내고자 할 때 유용하다.

 

 

명령어 옵션 보는법

mysqldumpslow --help

 

--help 로 명령어의 사용법을 보면 여러 옵션들이 나오는데, 자주 사용되는 항목은 -s 옵션을 나는 주로 사용한다.

 

 

mysqldumpslow Options

-a Do not abstract all numbers to N and strings to 'S'
-n Abstract numbers with at least the specified digits
--debug Write debugging information
-g Only consider statements that match the pattern
--help Display help message and exit
-h Host name of the server in the log file name
-i Name of the server instance
-l Do not subtract lock time from total time
-r Reverse the sort order
-s How to sort output
-t Display only first num queries
--verbose Verbose mode

 

-a : mysqldumpslow 는 쿼리 바인딩 변수를 숫자는 N 으로, 문자는 S 로 추상화를 하는데, 이를 방지한다.

-n : 최소 n자리 숫자가 포함된 쿼리

-g : 패턴이 일치하는 쿼리를 볼때. grep-style 의 패턴이 가능하다는데 이부분은 잘 모르겠다.

-h : 특정 호스트명 지정. 값에는 와일드카드 포함 가능하다. 기본값은 * 이다.

-i : 서버 인스턴스 이름. 잘 사용하지 않는듯 하다.

-l : 쿼리의 총 시간에서 잠금 시간을 빼지 않는다.

-r : 출력 결과 descending

-s : 정렬 옵션. 

  • t, at: 쿼리 시간 또는 평균 쿼리 시간으로 정렬. (Sort by query time or average query time)
  • l, al: 잠금 시간 또는 평균 잠금 시간으로 정렬. (Sort by lock time or average lock time)
  • r, ar: 전송된 행 또는 전송된 평균 행을 기준으로 정렬. (Sort by rows sent or average rows sent)
  • c: 건수로 정렬 (Sort by count)

-t : -t 3 사용시 처음 3개 쿼리만 출력

 

 

사용예시

mysqldumpslow -s c mysql_slow.log > c_dump.log

mysqldumpslow -s t mysql_slow.log > t_dump.log

 

 

 

 

 

참고

https://dev.mysql.com/doc/refman/8.0/en/mysqldumpslow.html

반응형