MySQL은 지정된 시간을 초과하는 쿼리를 기록합니다. 지정된 시간을 초과하는 SQL 쿼리 쿼리를 느린 쿼리라고 합니다.
1. 시간 제한을 확인하세요
show variables like '%long%';
.
+---------------------------------------------------+-----------+ | Variable_name | Value | +---------------------------------------------------+-----------+ | long_query_time | 10.000000 | | max_long_data_size | 1048576 | | performance_schema_events_waits_history_long_size | 10000 | +---------------------------------------------------+-----------+
long_query_time을 초과하는 쿼리를 느린 쿼리라고 합니다.
2. 데이터베이스의 시작 시간을 확인하세요
show status like 'uptime%';
+---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | Uptime | 76333 | | Uptime_since_flush_status | 76333 | +---------------------------+-------+
3. 쿼리문 개수
show status like 'com_Select';
를 확인하면
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 1 | +---------------+-------+
이 표시됩니다. 4. Get 연결 수
show status like 'connections';
표시
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | Connections | 2 | +---------------+-------+
5. 느린 쿼리 시간 설정
set long_query_time = 1;
6. 안전 모드에서 mysql 서비스를 시작하면 느린 쿼리 기록이 로그에 기록됩니다.
느린 쿼리 로그 활성화
MySQL 구성 파일에 다음 매개변수를 추가하세요.
log-show-queries = D:/MySQL/Log/mysqld-slow-query. log
long-query-time = 5
log-queries-not-using-indexes
설명:
느린 쿼리의 저장 위치 정보 쿼리 로그 기능을 사용하려면 디렉터리 파일에 쓰기 권한이 있어야 합니다. 설정을 사용할 수 있습니다. 시스템은 기본 파일인 host_name-show.log
long_query_time
SQL 실행 시간 임계값을 제공하며 기본값은 10초입니다
3가지 사항에 유의하세요.
1. long_query_time 임계값을 설정하면 mysql 데이터베이스는 실행 시간이 이 값을 초과하는 모든 SQL 문을 기록하지만 실행 시간이 long_query_time과 정확히 일치하는 경우에는 기록되지 않습니다. 즉, mysql 소스코드에서는 log_query_time보다 크거나 같거나 같지 않다고 판단한다.
2. MySQL 5.1부터 long_query_time이 마이크로초 단위로 계산되기 시작하여 SQL의 실행 시간을 정확하게 기록합니다.
3. 시간은 너무 작지도 크지도 않은 것이 좋으며, 가급적이면 5~10초 사이가 좋습니다. 물론 각자의 상황에 따라 결정하시면 됩니다.
log-queries-not-using-indexes
실행 중인 SQL 문이 인덱스를 사용하지 않는 경우 mysql 데이터베이스는 이 SQL 문도 느린 쿼리 로그 파일에 기록합니다.
위 내용은 MySQL Advanced Eleven - Slow Query의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!