행궁동 데이터 엔지니어

반응형

 

MySQL의 Slow Query를 모니터링하기 위한 Slow Query 관련 Parameters 목록을 간단히 정리해봤습니다.

다음에는 슬로우 쿼리 로그를 해석해보겠습니다.

 

요약

1. slow_query_log:  슬로우 쿼리 저장 유무 설정 (On / Off)

2. long_query_time: 슬로우 쿼리 기준 시간 설정 (ex. 5로 설정한 경우 5초 이상 걸린 쿼리 저장)

3. log_output: FILE 로 저장할지 TABLE에 저장할지 설정

4. slow_query_log_file: FILE로 저장할 경우 로그 파일경로 및 이름 설정

 

1. Slow Query Log 켜기

- Paramter name: slow_query_log

- 설정 가능한 값: ON / OFF

- https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_slow_query_log

-- 설정
SET GLOBAL slow_query_log = 'ON';
-- 확인
SHOW GLOBAL VARIABLES LIKE 'slow%';

2. Slow Query 기준 설정

- Parameter name: long_query_time

- 설정 가능 범위: 0 ~ 31536000 초 (마이크로 초 단위로 설정할 수 있다고 합니다)
(The value can be specified to a resolution of microseconds.)

- https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_long_query_time

-- 설정
SET GLOBAL long_query_time = 1;
-- 확인
SHOW GLOBAL VARIABLES LIKE 'long_query_time';

long_query_time

 

3. Slow Query 저장 방법 설정

- Parameter name: log_output

- 설정 가능 값: FILE(파일로 저장), TABLE(테이블에 저장), NONE(저장하지 않음)

- 아래 처럼 테이블에 저장하도록 설정하면 mysql.slow_log 테이블 에서 슬로우 쿼리 로그를 확인할 수 있습니다.

- https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_output

SET GLOBAL log_output = 'TABLE';
SHOW GLOBAL VARIABLES LIKE '%log_output';
select * from mysql.slow_log;

-- general_log 저장 테이블, general_log를 보고 general_log 파라미터를 ON 해줘야합니다.
-- select * from mysql.general_log;

mysql.slow_log 테이블 예시

* slow_log 테이블은 서버에 데이터가 CSV 파일(ENGINE 타입: CSV)로 저장됩니다.

(slow_log 테이블 확인)

select * from information_schema.tables
where table_name = 'slow_log';

서버에 저장되어있는 slow_log.csv 파일, log_output을 TABLE로 설정하면 위처럼 저장됩니다.

 

 

4. Slow Query 파일 저장 경로 및 이름 설정

- Parameter name: slow_query_log_file

제너럴 로그 파일의 저장 경로 또한 general_log_file 파라미터로 설정할 수 있습니다.

- https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_slow_query_log_file

SHOW GLOBAL VARIABLES LIKE '%log_file%';

-- 예시
-- slow_query_log_file: /opt/homebrew/var/mysql/hostname-slow.log

서버에 저장되어있는 hostname-slow.log 파일, log_output을 FILE로 설정하면 위처럼 저장됩니다.

 

참고 자료

1. Real MySQL 8.0(백은빈, 이성욱), 위키북스(2021), 4.4.3 슬로우 쿼리로그 (150 page)

2. MySQL 8.0 Reference Manual (System Variables):  https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html

3. MySQL 8.0 Reference Manual (Set Variable): https://dev.mysql.com/doc/refman/8.0/en/set-variable.html

 

 

 

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band