추천 학습: mysql 동영상 튜토리얼
MySQL의 느린 쿼리 로그는 MySQL에서 제공하는 로그 기록으로, MySQL의 응답 시간이 임계값(long_query_time, 단위)을 초과했음을 기록하는 데 사용됩니다. : 초) SQL 문입니다. 기본적으로 MySQL은 느린 쿼리 로깅을 시작하지 않습니다. 이 문서에서는 느린 쿼리 로그를 활성화하는 방법과 mysqldumpslow를 사용하여 느린 쿼리를 분석하는 방법을 간략하게 소개합니다.
느린 쿼리 로그를 일시적으로 활성화합니다(재시작 후 실패)
set global slow_query_log = on;
참고: 느린 쿼리 로그를 끄려면 다음을 실행하세요. 전역 Slow_query_log = off 설정 ; 그게 다입니다.
일시적인 느린 쿼리 시간 임계점 이 임계점보다 높은 쿼리 시간은 느린 쿼리 로그에 기록됩니다(다시 시작이 잘못됨)
set long_query_time = 1;
느린 쿼리 저장 방법 설정(다시 시작이 잘못됨)
set global log_output = file;
설명: 여기서는 file로 설정한 것을 볼 수 있는데, 이는 내 느린 쿼리 로그가 파일을 통해 반영된다는 뜻입니다. 테이블인 경우 느린 쿼리 정보를 파일로 설정할 수 있습니다. mysql의 라이브러리 아래의 Slow_log 테이블에 저장됩니다.查2, 느린 쿼리 로그의 열기 상태와 느린 쿼리 로그의 위치를 쿼리합니다.
show variables like '%quer%';
3. 로그 저장 형식을 확인하세요
show variables like 'log_output';
4. 느린 로그를 영구적으로 활성화합니다
my.cnf 구성 파일에 [mysqld] 섹션을 추가하세요. (보통 /etc/my.cnf) 다음 매개변수입니다.
[mysqld]slow_query_log= 1slow_query_log_file= /var/lib/mysql/slow-query.log # 若没有指定,默认名字为hostname_slow.loglong_query_time= 1log_queries_not_using_indexes= 1
그중, Slow_query_log = 1은 느린 쿼리를 켜는 것을 의미하고, 0은 끄는 것을 의미합니다.
slow_query_log_file, 느린 쿼리 로그 경로를 지정하고, MySQL은 해당 경로에 대한 쓰기 권한이 있어야 합니다.
long_query_time = 1, 쿼리를 의미합니다. 시간 >=1초 로그 기록, 기본값은 10s
log_queries_not_using_indexes = 1입니다. 이는 인덱스를 사용하지 않는 SQL 문이 기록됨을 나타냅니다.
MySQL 서비스를 다시 시작하면 /var/lib/mysql이 표시됩니다. /slow-query.log 파일입니다.
3. 느린 쿼리 테스트
느린 쿼리를 생성하고 실행해 보세요.mysql> select sleep(1);+----------+
| sleep(1) |
+----------+
| 0 |
+----------+
1 row in set (1.00 sec)
느린 쿼리 로그 파일을 엽니다. 위의 느린 쿼리에 대한 SQL 문이 로그에 기록되는 것을 확인할 수 있습니다.
4. 느린 쿼리 분석 도구
mysqldumpslow
시간 기준으로 정렬된 상위 5개 SQL 문
$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log
$ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log
SET GLOBAL slow_query_log = 'OFF'; ALTER TABLEmysql.slow_log RENAME mysql.slow_log_drop; CREATE TABLE mysql.slow_log LIKEmysql.slow_log_drop; SET GLOBAL slow_query_log = 'ON'; DROP TABLE mysql.slow_log_drop;
推荐学习:mysql视频教程
위 내용은 MySQL 느린 쿼리 로그 실습(그래픽 및 텍스트 분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!