>  기사  >  데이터 베이스  >  mysql이 시간이 많이 걸리는 SQL 문 인스턴스를 기록하는 방법에 대한 자세한 설명

mysql이 시간이 많이 걸리는 SQL 문 인스턴스를 기록하는 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-09-02 14:04:111740검색

이 기사에서는 mysql 기록 시간이 많이 걸리는 sql 예제에 대한 정보를 주로 소개합니다. 도움이 필요한 친구들은

mysql 기록 시간이 많이 걸리는 sql

을 참조하세요. 시간이 많이 걸리는 SQL이나 최적화 분석을 위해 느린 로그에 인덱스를 사용하지 않는 SQL을 기록합니다.

1. mysql 느린 쿼리 로그 활성화:

mysql 느린 쿼리 로그는 현재 프로그램에서 리소스를 소비하는 SQL 문을 분석하는 데 매우 유용합니다. of mysql What?

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| log_slow_queries | OFF | 
+------------------+-------+
1 row in set (0.01 sec)

mysql>

이는 느린 로그 기능이 활성화되지 않았음을 의미합니다. 이를 활성화하려면 mysql 구성 파일을 수정해야 합니다. 구성 파일 "[mysqld]":

long_query_time=1
log-slow-queries=/var/mysql/logs/slow.log

Explanation


long_query_time


이 매개변수는 느린 쿼리의 측정 시간을 나타내며, 단위는 초, 최소값은 1, 기본값은 10입니다. 실행 시간이 long_query_time을 초과하는 모든 SQL 문은 느린 쿼리 로그에 기록됩니다

log-slow-queries[=file_name]


file_name 매개변수는 선택사항입니다. 기본값은 host_name-slow.log입니다. file_name이 설정한 파일에 대한 느린 쿼리 로그입니다. file_name이 상대 경로를 제공하면 mysql은 mysql의 데이터 디렉터리에 로그를 기록합니다. 이 매개변수는 구성 파일에만 추가할 수 있으며 명령줄에서는 실행할 수 없습니다.

2. 사용하지 않는 인덱스 쿼리를 느린 로그에 기록하는 구성


mysql 시작 구성 파일 또는 명령줄 매개변수에 "log_queries_not_using_indexes" 매개변수를 추가하여 느린 로그 내부에 사용되지 않는 인덱스 쿼리 문을 추가합니다.

샘플은 다음과 같습니다.


[root@localhost mysqlsla-2.03]# more /etc/my.cnf 
[mysqld]
datadir=/var/lib/mysql
log_bin=/tmp/mysql/bin-log/mysql-bin.log
log_bin=ON
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1


log_slow_queries=/tmp/127_slow.log
long_query_time=1
log_queries_not_using_indexes

.......

mysql을 다시 시작한 후 확인 결과는 다음과 같습니다.

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| log_slow_queries | ON | 
+------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'long_query_time';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| long_query_time | 2  | 
+-----------------+-------+
1 row in set (0.00 sec)

mysql>

위 내용은 mysql이 시간이 많이 걸리는 SQL 문 인스턴스를 기록하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.