일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
- 자료구조 정렬
- javascript first class citizen
- react event bind
- 자료구조
- parcel
- web server vs was
- express request body
- server side rendering
- 선형리스트
- request body undefined
- parcel resolver error
- DOM API
- Event Loop
- typescript parcel tilde
- client side rendering
- react
- javascript eventloop
- 일급 객체
- Browser API
- body-parser
- redux 사용 이유
- first class citizen
- Call stack
- es6 module
- task queue
- javascript module
- 자료구조 queue
- redux 특징
- centos7 설치
- 순차리스트
- Today
- 6
- Total
- 538,106
비실이의 개발 성장기
오래걸리는 Query를 기록해주는 slow log 설정방법 본문
MySQL / MariaDB의
Slow Query log를 설정하는 방법에 대해
포스팅 하겠습니다.
* Slow Query log 란?
SQL 질의 요청을 했는데 응답이 오래걸릴 경우
이 부분에 대해 log를 남기는 것.
Mysql 접속을 하겠습니다.
mysql -u root - p 를 입력하여 접속합니다.
그 다음, slow query log 설정 상태를 확인하겠습니다.
show variables like 'slow_query_%'; 를 입력합니다.
현재는 slow_query_log 설정이 OFF로 되어있어 log가 생성되지 않습니다.
slow_query_log_file 은 log파일이 생성 될 경로 입니다.
설정을 ON으로 바꾸러 이동하겠습니다.
exit 를 입력하여 잠시 mysql 을 종료하겠습니다.
mysql 설정을 변경하려면 my.cnf 파일을 수정해야 합니다.
my.cnf 파일은 /etc 에 위치하고 있습니다.
vi /etc/my.cnf 를 입력하여 my.cnf에 설정을 추가하겠습니다.
빨간 테두리 부분이 slow query 설정을 한 부분입니다.
slow_query_log 의 값을 1로 하면 ON, 0으로 하면 OFF 입니다.
slow_query_log_file 은 log 파일이 생성 될 경로 입니다.
long_query_time 를 3으로 주면 query 실행시간이 3초 이상인 query에 대해
log를 남기겠다는 설정입니다.
입력을 마쳤으면 :wq! 로 저장 후 나옵니다.
변경 된 설정을 적용시키려면 mysql을 재기동 해야 합니다.
service mysqld restart 를 입력합니다.
그 다음으로..
log파일이 생성되는 위치를 확인 해보겠습니다.
cd /var/log 를 입력하여 이동합니다.
mysql log 용 디렉토리를 하나 생성하겠습니다.
mkdir mysql 를 입력하여 디렉토리를 생성합니다.
mysql 디렉토리 접근 권한 설정도 하겠습니다.
명령어 chown mysql:mysql /var/log/mysql 을 입력합니다.
권한설정까지 끝났다면..
다시 mysql에 접속합니다.
select sleep(5); 를 입력합니다.
* sleep() 은 mysql 의 내장함수로, 의도적으로 쿼리를 지연시키는 함수 입니다.
log가 제대로 기록됐는지 확인하겠습니다.
exit로 mysql을 나옵니다.
그리고 아까 설정한 slow query 경로로 이동하겠습니다.
cd /var/log/mysql
slow query 설정에 문제가 없었다면.. 위 처럼 mysql-slow.log 파일이
생성되어 있습니다.
tail -f mysql-slow.log 로 log 확인을 하겠습니다.
# 이 붙어있는 행을 보면 됩니다.
Time 은 해당 query를 수행한 시간을
User@Host 는 접속계정 과 host 정보를
Query_time 은 쿼리가 수행되기까지 걸린 시간 (초 단위)
Lock_time 은 쿼리를 수행하는데 사용 된 테이블 독점 시간(?)
이라고 합니다.
맨 마지막에는 쿼리문도 나오는군요.
간단한 개인 프로젝트 시에는 slow query 를 볼 일이 없지만
실무에서는 slow query 설정을 해 놓으면
여러모로 활용할 수 있을 것 같습니다.
# 잘못된 점이나 궁금한 사항은 댓글로 남겨주세요.
'DB > MySQL' 카테고리의 다른 글
오래걸리는 Query를 기록해주는 slow log 설정방법 (0) | 2016.12.11 |
---|---|
linux(CentOS 7)에서 MySQL log 확인방법 (0) | 2016.12.05 |
MySQL 계정 생성 관리 및 권한설정 (7) | 2016.12.04 |