MySQL에서 실행했던 쿼리의 이력을 확인하는 방법입니다.
실행중인 쿼리 확인
mysql> show full processlist\G;
실행 했던 쿼리 이력 확인
mysql> select * from INFORMATION_SCHEMA.PROCESSLIST order by id desc limit 10\G;
종류 | 내용 |
---|---|
Id | 접속 식별자 |
User | 쿼리를 실행한 유저 |
Host | 쿼리를 실행한 호스트 |
db | 데이터 베이스 명 |
Command | 커맨드 종류 |
Query, Connect, Sleep 등 | |
Time | 현재의 상태가 지속되고 있는 시간 |
State | 커맨드 상태 |
Info | 쿼리문 |
로그파일에서 실행된 쿼리 이력 확인
~], vim /etc/my.cnf
general_log=ON ,쿼리 로그가 출력되도록 설정
general_log_file=/home/mysql_query_log/query.log ,로그파일 경로 설정
~], /etc/init.d/mysqld restart ,MySQL 재기동
MySQL의 설정 파일을 편집 명령어로 열고 general_log 와 general_log_file 을 설정하고 저장합니다.
MySQL을 재기동 하면 쿼리의 로그가 기록됩니다.
실행 속도가 느린 쿼리 확인 하기
~], vim /etc/my.cnf
slow_query_log=1 ,0:끄기,1:켜기
slow_query_log_file=/home/mysql/mysqld-slow.log ,로그파일 경로 설정
long_query_time=5 ,5초이상 걸리는 쿼리
~], /etc/init.d/mysqld restart ,MySQL 재기동
MySQL의 설정 파일을 편집 명령어로 열고slow_query_log 와 slow_query_log_file 을 설정하고 저장합니다.
MySQL을 재기동 하면 설정한 내용이 반영됩니다.
이 설정으로 쿼리의 실행시간을 확인 할 수 있습니다.
long_query_time의 기본값은 10초입니다.
댓글