새소식

DataBase

db - slow query

  • -

정의

DBMS가 Client로부터 요청받은 query를 수행할 때 일정 시간 이상 수행되지 못한 query

- slow query 발생 시 로그를 통해 원인을 파악할 수 있다.

slow query 잡는 법

  • 어느정도 느려지면, 쿼리 실행문을 로그에 남길건지 postgresql.conf에 설정값을 추가해줘야한다.
1. 발생 로그 남기기
2. 모든 쿼리 실행계획 로그 남기기
3. 쿼리 실행 통계 보기

로그 쌓는 법

슬로우쿼리는 my.cnf 파일 내에서 설정.

my.cnf의 경로는 주로 /etc/my.cnf를 사용합니다. 편집기를 통해 다음의 내용을 입력한다.

my.cnf로 수정할 경우 mysql 서비스 재시작이 필요함.

항목 my.cnf 추가 내용
해당 값(초) 이상의 로그 기록 long_query_time = 3
슬로우쿼리 활성 여부 (0 = 비활성 / 1 = 활성) slow_query_log = 1
슬로우쿼리 로그파일 경로 slow_query_log_file = /var/log/mysql/slow_queries.log
index를 사용하지 않는 쿼리 기록 여부 log_queries_not_using_indexes = on

  • 또는 mysql 내에서 아래와 같은 명령어를 통해 서비스 재시작을 하지 않고 적용도 가능.

항목 mysql 실행 명령어
해당 값(초) 이상의 로그 기록 mysql> set global long_query_time = 3;
슬로우쿼리 활성 여부 (0 = 비활성 / 1 = 활성) mysql> set global slow_query_log = 1;
슬로우쿼리 로그파일 경로 mysql> set global slow_query_log_file="/var/log/mysql/slow_queries.log
index를 사용하지 않는 쿼리 기록 여부 mysql> set global log_queries_not_using_indexes = on;

각 단어 의미
Time = 쿼리 요청 시각
Query_time : 쿼리 수행 시간
Lock_time : 락이 걸린 시간
Rows_sent = 쿼리 결과 row수
Rows_examined = 쿼리대상 row수

출처 : 폐관코딩 티스토리


반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.