반응형
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
-에스
반응형
'MySQL' 카테고리의 다른 글
MySQL load data 로 대량 데이터 insert 하기(CSV 파일 업로드) (0) | 2023.12.29 |
---|---|
MySQL 8.0 테이블생성 warning utf8 alias utf8mb3 utf8mb4 (0) | 2023.12.26 |
RDS vs Aurora (0) | 2022.09.29 |
Postgresql Auto vaccum 수행중일 때 Full vaccum 이 돌면? (0) | 2022.09.28 |
Aurora 2.X -> 3.X in-place 업그레이드 지원(2022-09-26 ~) (0) | 2022.09.28 |