반응형
간혹 운영 서버가 이상이 발생할 경우 여러 원인을 분석하는데
그 중 하나가 데이터베이스에 이상이 있는지 확인하는 작업을 수행하게 됩니다.
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 정보가 있기 때문에
언제 쿼리 시간이 오래된 쿼리를 찾을 수 가 있습니다.
반응형
'Database' 카테고리의 다른 글
[SQL] INTERVAL함수에 변수 사용방법 (0) | 2022.09.19 |
---|---|
[SQL] Insert 후 인덱스 값 가져오는법 (Mybatis&Ibatis) (0) | 2022.07.14 |
[MYSQL] 계정 및 권한 생성 방법!! (0) | 2021.12.20 |
[Query] Join 속도 개선 방법 (feat. SubQuery) (0) | 2021.04.13 |
[MYSQL] 더미데이터 생성 쿼리!! (0) | 2021.03.31 |
댓글