• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 1. MySQL Server
    2. MySQL Server 로그
    1. 일반 쿼리 로그와 슬로우 쿼리 로그 대상 선택
    2. 에러 로그
    3. 일반 쿼리 로그
    4. 바이너리 로그
    5. 슬로우 쿼리 로그
    6. DDL 로그
    7. 서버 로그의 유지 보수
    3. 하나의 시스템에서 여러 MySQL 인스턴스 실행
    4. DTrace를 사용하여 mysqld 추적
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

5.2.5 슬로우 쿼리 로그

슬로우 쿼리 로그는 실행하는 데 걸린 시간이 long_query_time 초를 초과 적어도 min_examined_row_limit 행을 검사 할 필요가 있었다 SQL 문으로 구성됩니다. long_query_time 의 최소값과 디폴트 값은 각각 0과 10입니다. 값은 마이크로 초 정도까지 지정할 수 있습니다. 파일에 로깅의 경우 시간은 마이크로 초 부분을 포함하여 기록됩니다. 테이블에 로깅의 경우 시간의 정수 부분 만 기록 마이크로 초 부분은 무시됩니다.

기본적으로 관리 문은 기록되지 않고 참조 인덱스를 사용하지 않는 쿼리도 기록되지 않습니다. 나중에 설명하도록이 동작은 log_slow_admin_statements 및 log_queries_not_using_indexes 을 사용하여 변경할 수 있습니다.

초기 잠금을 획득하는 시간은 실행 시간으로 계산되지 않습니다. mysqld가 슬로우 쿼리 로그에 문을 쓰는 것은 명령문이 실행되고 모든 잠금이 해제 된 후이기 때문에 로그 순서가 실행 순서와 다를 수 있습니다.

기본적으로 슬로우 쿼리 로그는 비활성화되어 있습니다. 초기 슬로우 쿼리 로그 상태를 명시 적으로 지정하려면 --slow_query_log[={0|1}] 를 사용합니다. 인수를 지정하지 않거나 인수가 1이면 --slow_query_log 의해 로그가 활성화됩니다. 인수가 0 인 경우이 옵션은 로그를 비활성화합니다. 로그 파일 이름을 지정하려면 --slow_query_log_file= file_name 을 사용합니다. 로그 대상을 지정하려면 ( 섹션 5.2.1 "일반 쿼리 로그와 슬로우 쿼리 로그 대상 선택" 에서 설명되는) --log-output 을 사용합니다.

슬로우 쿼리 로그 파일의 이름을 지정하지 않으면 기본 이름은 host_name -slow.log 입니다. 서버는 다른 디렉토리를 지정하는 절대 경로 이름이 지정되지 않는 한 데이터 디렉토리에 파일을 만듭니다.

실행시에 슬로우 쿼리 로그를 비활성화 또는 활성화하거나 로그 파일 이름을 변경하거나하려면 글로벌 slow_query_log 및 slow_query_log_file 시스템 변수를 사용합니다. slow_query_log 을 0 (또는 OFF )하면 로그가 비활성화하고 1 (또는 ON )에서 활성화합니다. 로그 파일의 이름을 지정하려면 slow_query_log_file 을 지정합니다. 로그 파일이 이미 열려있는 경우 로그 파일을 닫고 새 파일을 엽니 다.

슬로우 쿼리 로그가 활성화되면 서버는 --log-output 옵션 또는 log_output 시스템 변수에 의해 지정된 모든 대상에 출력을 씁니다. 로깅을 사용하면 서버는 로그 파일을 열고 로그 파일에 부팅 메시지를 씁니다. 그러나 FILE 로그 대상이 선택되지 않는 한 파일에 대한 더 이상의 쿼리 로깅이 수행되지 않습니다. 대상이 NONE 의 경우, 슬로우 쿼리 로그가 유효한 경우에도 서버는 쿼리를 쓰지 않습니다. 로그 출력 값에 FILE 이 포함되어 있지 않은 경우, 로그 파일 이름을 설정해도 로깅에 미치는 영향은 없습니다.

--log-short-format 옵션을 사용하는 경우 서버에 의해 슬로우 쿼리 로그 (및 바이너리 로그)에 기록되는 정보가 적습니다.

슬로우 쿼리 로그에 기록되는 문 저속 관리 문을 포함하려면 log_slow_admin_statements 시스템 변수를 사용합니다. 관리 문은 ALTER TABLE , ANALYZE TABLE , CHECK TABLE , CREATE INDEX , DROP INDEX , OPTIMIZE TABLE 및 REPAIR TABLE 이 포함됩니다.

슬로우 쿼리 로그에 기록되는 문에 행 참조에 대한 인덱스를 사용하지 않는 쿼리를 포함하려면 log_queries_not_using_indexes 시스템 변수를 사용합니다. 그런 쿼리가 기록되면 슬로우 쿼리 로그가 급속히 증대 할 수 있습니다. log_throttle_queries_not_using_indexes 시스템 변수를 설정하여이 쿼리에 속도 제한을 부과 할 수 있습니다. 기본적으로이 변수는 0에서 제한이 없음을 의미합니다. 양수 값을 지정하면 인덱스를 사용하지 않는 쿼리 로깅에 대해 분당 제한이 부과됩니다. 이러한 초기 쿼리에 의해 60 초 창이 열리고 그 기간 내에 서버는 쿼리를 미리 정해진 한도까지 기록하고, 그 후에 추가 쿼리를 억제합니다. 윈도우가 종료 할 때 억제 된 쿼리가 존재하는 경우, 서버는 쿼리가 존재 한 수와 소요 된 집계 시간을 나타내는 요약을 기록합니다. 인덱스를 사용하지 않는 다음의 쿼리를 서버 로그에 기록 할 때, 다른 60 초 창이 시작됩니다.

서버는 슬로우 쿼리 로그에 쿼리를 작성할지 여부를 판단하기 위해 제어 매개 변수를 다음 순서로 사용합니다.

  1. 쿼리는 관리 문 아닌지, log_slow_admin_statements 이 활성화되어있을 필요가있다.

  2. 쿼리에 적어도 long_query_time 초 걸려 있거나 log_queries_not_using_indexes 이 유효하다고 쿼리는 행 참조 인덱스를 사용하지 않는다.

  3. 쿼리는 적어도 min_examined_row_limit 행을 검사 할 필요가있다.

  4. 쿼리는 log_throttle_queries_not_using_indexes 설정에 의해 억제되어 하여서는 아니된다.

서버는 쿼리 캐시에 의해 처리되는 쿼리를 던져 쿼리 로그에 기록하고, 테이블에 0 행 또는 열만 없기 때문에 인덱스가 있는지 메리트가 없다 같은 쿼리도 슬로우 쿼리 로그에 기록하지 않습니다.

기본적으로 복제 슬레이브는 복제 된 쿼리를 던져 쿼리 로그에 기록하지 않습니다. 이를 변경하려면 log_slow_slave_statements 시스템 변수를 사용합니다.

MySQL 5.6.3 이후에서는 슬로우 쿼리 로그에 기록되는 문 암호는 서버에 의해 고쳐 쓸 수있어 문자 그대로 일반 텍스트로 표시되는 것은 아닙니다. MySQL 5.6.3 이전에서는 문에서 암호는 다시하지 않기 때문에, 슬로우 쿼리 로그를 보호하도록하십시오. 섹션 6.1.2.3 "암호 및 로깅" 을 참조하십시오.

슬로우 쿼리 로그는 실행 시간이 오래 걸려 있기 때문에 최적화 후보 쿼리를 찾는 데 사용할 수 있습니다. 그러나 긴 슬로우 쿼리 로그를 조사하는 것은 어려운 작업이 될 수 있습니다. 이를 쉽게하기 위해 mysqldumpslow 명령을 사용하여 슬로우 쿼리 로그 파일을 처리하고 로그에 표시되는 쿼리를 요약 할 수 있습니다. 섹션 4.6.9 "mysqldumpslow - 슬로우 쿼리 로그 파일의 요약" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved