MySQL 실행한 SQL 쿼리 이력을 확인하는 방법

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초입니다.

댓글