본문 바로가기
Database

[MySQL] slow_queries.log 효율적인 검색 방법

by GoodDayDeveloper 2024. 4. 24.
반응형

 

 

간혹 운영 서버가 이상이 발생할 경우 여러 원인을 분석하는데 

 

그 중 하나가 데이터베이스에 이상이 있는지 확인하는 작업을 수행하게 됩니다.

 

 

MySQL에서는 slow_query를 설정하여 오래 걸리는 쿼리를 로그로 기록하여 파일화해줍니다.

 

그래서 여기서 오래 걸리는 쿼리를 확인하여 서버 운영 안정화에 많은 도움을 받을 수 있습니다.

 

 

하지만 많이 사용하는 사이트의 경우 slow_queries.log  로그양이 상당해서 찾기 어려움이 있습니다.

 

slow_queries.log의 효율적인 검색 방법을 소개해보겠습니다.

 

 

 

 

[MySQL]  slow_queries.log 효율적인 검색 방법 

 

 

 

 

 

cd /usr/local/mysql/log

 

 

 

 

우선 mysql의 로그 폴더로 접속을 합니다.

 

 

 

 

 

grep "Query_time:" slow_queries.log | awk '{if($3 > 100)print}'

 

 

 

 

 

쿼리 타임이 오래 측정된 데이터를 찾는 것이 목표입니다.

 

 

slow_queries.log에서 Query_time이 100초 이상인 것을 출력해주는 명령어입니다.

 

 

 

 

 

명령어를 검색하면 위와 같이 출력되게 됩니다.

 

 

위에서 나오는 slow_queries.log 항목들 정보입니다.

 

 

항목 내용
Query_time 쿼리 처리시간
Lock_time lock이 걸린 시간
Row_sent 조회 결과 Row 수
Rows_examined 조회 대상 ROW 수

 

 

다른 항목들도 중요하지만 'Query_Time' 

 

즉, 쿼리 처리 시간이 긴 부분이 가장 서버에 불안정한 영향을 줄 수가 있습니다.

 

 

 

 

 

cat slow_queries.log|less

 

 

 

 

그런 다음 slow_queries.log의 파일을 열어서

 

 

 

/Query_time: 313

 

 

 

쿼리 타임이 313초인 것을 찾아주는 명령어를 실행합니다.

 

 

 

 

 

 

그럼 해당 쿼리 타임과 더불어 여러 정보 및 timestamp 정보가 있기 때문에 

 

 

언제 쿼리 시간이 오래된 쿼리를 찾을 수 가 있습니다.

 

 

 

 

반응형

댓글