이 글에서는 MySQL에서 느린 쿼리 로그를 여는 방법을 주로 소개합니다. 편집자는 이것이 꽤 좋다고 생각합니다. 이제 공유하고 참고하겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.
1.1 소개
느린 쿼리 로그를 켜면 MySQL이 지정된 시간을 초과하는 쿼리를 기록할 수 있으며, 성능 병목 현상을 찾아 분석함으로써 데이터베이스 시스템의 성능을 더욱 최적화할 수 있습니다.
1.2 데이터베이스에 로그인하여 확인하세요
[root@localhost lib]# mysql –uroot
비밀번호가 설정되어 있지 않기 때문에 비밀번호가 있는 경우 mysql –uroot –p
1.2.1 MySql에 입력하세요. 느린 쿼리가 활성화되어 있는지 확인하세요
mysql> show variables like 'slow_query%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.00 sec)
매개변수 설명:
slow_query_log 느린 쿼리 열기 상태 OFF 꺼짐 켜짐 켜짐
slow_query_log_file 느린 쿼리 로그가 저장되는 위치(이 디렉터리에는 MySQL 실행 계정의 쓰기 가능한 권한이며 일반적으로 MySQL 데이터 저장소 디렉터리로 설정됩니다)
1.2.2 느린 쿼리 시간 초과 시간을 확인하세요
mysql> show variables like 'long%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec)
long_query_time 쿼리를 기록하는 데 걸리는 시간(초) ? 기본 10초가 1초로 변경되었습니다
1.3 수정 방법 1: (권장하지 않음)
방법 1: 장점: 일시적으로 느린 쿼리를 활성화하고 데이터베이스를 다시 시작할 필요가 없습니다. 단점: 다시 시작할 때 MySql 느린 쿼리가 실패합니다.
권장 사항: 비즈니스 요구에 따라 두 번째 방법을 사용하는 것이 좋습니다. 첫 번째 방법은 일시적으로 사용할 수 있습니다. 기본적으로 Slow_query_log 값은 OFF로, 느린 쿼리 로그가 비활성화되어 있으며 설정을 통해 활성화할 수 있음을 나타냅니다. 다음과 같이 Slow_query_log 값: 느린 쿼리 로그를 활성화할지 여부, 1은 켜짐을 의미하고 0은 꺼짐을 의미합니다.1.3.1 느린 쿼리가 활성화되어 있는지 확인하세요
mysql> show variables like '%slow_query_log%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | OFF | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.01 sec)입력 문을 수정하세요(다시 시작하면 무효화되므로 영구적으로 적용하려면 /etc/my.cnf에서 수정하는 것이 좋습니다)
mysql> set global slow_query_log=1; Query OK, 0 rows affected (0.11 sec)
1.3.2 다시 보기
mysql> show variables like '%slow_query_log%'; +---------------------+--------------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------------+ | slow_query_log | ON | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+--------------------------------------------+ 2 rows in set (0.00 sec)
1.4 수정 방법 2: (권장)
MySql 느린 쿼리를 수정하세요. 찾아보세요참고: 내 MySQL은 /etc/my.cnf(보통 여기) 경로로 컴파일됩니다.[root@localhost log]# find / -type f -name "my.cnf" /application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-test/suite/federated/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf /etc/my.cnf ###(一般都是这里)
1.4.1.1 수정
[root@localhost log]# vim /etc/my.cnf[mysqld]를 찾아
를 추가하세요.
slow_query_log =1 slow_query_log_file=/application/mysql/data/localhost-slow.log long_query_time = 1매개변수 설명:
1.5 보기, 테스트
1.5.1.1 테스트 느린 쿼리 삽입
mysql> select sleep(2); +----------+ | sleep(2) | +----------+ | 0 | +----------+ 1 row in set (2.00 sec)
1.5.1.2 느린 쿼리 확인 log
[root@localhost data]# cat /application/mysql/data/localhost-slow.log /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument /application/mysql/bin/mysqld, Version: 5.5.51-log (MySQL Community Server (GPL)). started with: Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument # Time: 170605 6:37:00 # User@Host: root[root] @ localhost [] # Query_time: 2.000835 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 SET timestamp=1496615820; select sleep(2);
1.5.1.3 MySQL 명령을 통해 느린 쿼리 수 확인
mysql> show global status like '%Slow_queries%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Slow_queries | 1 | +---------------+-------+ 1 row in set (0.00 sec)
1.6 로그 분석 도구 mysqldumpslow
프로덕션 환경에서 로그를 수동으로 분석하려는 경우 , SQL을 찾고 분석하는 것은 분명히 힘든 작업입니다. MySQL은 로그 분석 도구 mysqldumpslow관련 권장 사항:일반 쿼리 로그와 느린 쿼리 로그의 차이점 in MySQL
MySQL 최적화를 위한 MySQL 느린 쿼리 작업 소개
위 내용은 MySQL에서 느린 쿼리 로그를 활성화하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!