long_query_time
시스템 변수에 설정된 시간 이상 걸리는 쿼리를 기록한다long_query_time
보다 많은 시간이 걸린 쿼리만 기록mysql
DB 의 slow_log
와 general_log
테이블에 저장한다.TABLE
로 설정해도 CSV 스토리지 엔진을 사용하여 CSV 파일로 저장된다.# Time: 2020-07-19T15:44:22.178484+09:00
# User@Host: root[root] @ localhost [] Id: 14
# Query_time: 1.180245 Lock_time: 0.002658 Rows_sent: 1 Rows_examined: 2844047
use employees;
SET timestamp=1595141060;
select emp_no, max(salary) from salaries;
Time
항목Time
은 쿼리가 끝난 시간을 말함Time
에서 Query_time
을 빼면 된다.User@Host
Lock_time
은.. MySQL 엔진 레벨의 테이블 잠금 대기 시간임.실제 잠금 체크시간도 포함
되기에, 매우 작은 값은 무시해도 된다.쿼리 처리를 위해 접근한 레코드의 수
Rows_sent 가 적고, Rows_examined 가 많다면, 튜닝을 고려해볼 가치가 있다.
Percona Toolkit
=⇒ py-query-digest 스크립트를 사용하여 로그 파일을 가독성있게 분석이 가능하다.Slow Log: pt-query-digest --type='slowlog' mysql-slow.log > parsed_mysql-slog.log