>데이터 베이스 >MySQL 튜토리얼 >MySQL 느린 쿼리 로그 실습(그래픽 및 텍스트 분석)

MySQL 느린 쿼리 로그 실습(그래픽 및 텍스트 분석)

WBOY
WBOY앞으로
2022-09-14 17:28:022514검색

추천 학습: mysql 동영상 튜토리얼

1. 개요

MySQL의 느린 쿼리 로그는 MySQL에서 제공하는 로그 기록으로, MySQL의 응답 시간이 임계값(long_query_time, 단위)을 초과했음을 기록하는 데 사용됩니다. : 초) SQL 문입니다. 기본적으로 MySQL은 느린 쿼리 로깅을 시작하지 않습니다. 이 문서에서는 느린 쿼리 로그를 활성화하는 방법과 mysqldumpslow를 사용하여 느린 쿼리를 분석하는 방법을 간략하게 소개합니다.

2. 느린 쿼리 로그 설정

1. 임시 설정

느린 쿼리 로그를 일시적으로 활성화합니다(재시작 후 실패)

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%';

매개변수 설명:

    slow_query_log:
  • 이미 쿼리
  • slow_qury_log_file을 열었나요:
  • 느린 쿼리 로그 파일 경로
  • long_query_time:
  • 초를 초과하는 쿼리는 로그에 기록됩니다
  • log_queries_not_using_indexes 값을 ON으로 설정하면 인덱스를 사용하지 않는 모든 쿼리가 기록됩니다(수행 중에 활성화). 최적화, 평소에는 활성화하지 마세요)

3. 로그 저장 형식을 확인하세요

show variables like 'log_output';

4. 느린 로그를 영구적으로 활성화합니다

my.cnf를 수정하세요

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

mysqldumpslow는 느린 쿼리를 분석하는 MySQL의 자체 도구입니다. 이 도구는 Perl 스크립트입니다.

일반적으로 사용되는 매개 변수는 다음과 같습니다.

    -s:
  • 정렬 방법, 값은 다음과 같습니다.
  • c:
  • 쿼리 수
  • t:
  • 쿼리 시간
  • l :
  • 잠금 시간
  • r:
  • 반환된 레코드
  • ac:
  • 평균 쿼리 수
  • al:
  • 평균 잠금 시간
  • ar:
  • 평균 레코드 반환
  • at: 평균 쿼리 시간
  • -t:
  • topN 쿼리
  • -g:
  • 정규식
  • 가장 많이 방문한 5개의 SQL 문 가져오기:

시간 기준으로 정렬된 상위 5개 SQL 문

$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log

시간 및 포함 기준으로 정렬 상위 5개 SQL 문 '좋아요'

$ mysqldumpslow -s t -t 3 -g "like" /var/lib/mysql/slow-query.log

五、MySQL 清理slowlog方法

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제