MySQL 느린 쿼리 로그: 상세 가이드

게시 됨: 2023-08-01
사랑을 퍼뜨리다

이 문서는 MySQL 느린 쿼리 로그에 대한 명확한 이해와 이를 효과적으로 해석하는 방법을 제공하도록 설계된 간결하면서도 포괄적인 리소스입니다. 이 가이드는 사용자가 성능 병목 현상과 잠재적인 데이터베이스 문제를 식별하고 해결할 수 있도록 느린 쿼리 로그와 관련된 복잡성을 해결하는 것을 목표로 합니다.

MySQL용 느린 쿼리 로그를 활성화하면 서버에 영향을 미칠 수 있는 성능 및 효율성 문제를 진단하는 데 귀중한 자산임이 입증되었습니다. 실행 시간이 현저하게 느린 쿼리를 찾아내어 쿼리를 담당하는 애플리케이션을 재구성하거나 쿼리 자체를 최적화하여 효과적으로 해결할 수 있습니다. 이 능동적인 접근 방식은 쿼리가 최적의 효율성으로 구성되도록 하여 궁극적으로 전체 시스템 성능을 향상시킵니다.

목차

MySQL 소개

MySQL은 다양한 웹 애플리케이션 및 소프트웨어의 데이터를 저장, 관리 및 검색하는 데 널리 사용되는 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템 중 하나입니다. 정교한 데이터베이스 시스템과 마찬가지로 MySQL은 활동 및 성능에 대한 필수 정보를 기록하는 강력한 로깅 메커니즘을 제공합니다. 이러한 로그는 데이터베이스 동작을 모니터링하고 문제를 해결하는 데 중요한 역할을 하며 시스템의 상태와 효율성에 대한 귀중한 통찰력을 제공할 수 있습니다.

MySQL이 생성하는 로그 유형

MySQL에 의해 생성되는 여러 유형의 로그가 있으며 각각 특정 용도를 제공합니다.

  1. 일반 쿼리 로그 : 이 로그는 소스에 관계없이 서버에서 실행된 모든 SQL 쿼리를 기록합니다. 실행 중인 쿼리의 순서를 디버깅하고 이해하기 위한 강력한 도구이지만 방대한 양의 데이터를 생성할 수 있어 주로 단기 진단에 적합합니다.
  2. 오류 로그: 오류 로그는 MySQL 서버 작동 중에 발생한 모든 오류를 캡처합니다. 이러한 오류에는 데이터베이스의 기능에 영향을 줄 수 있는 시작, 종료 또는 기타 중요한 오류와 관련된 문제가 포함될 수 있습니다. 오류 로그를 모니터링하면 관리자가 잠재적인 문제를 빠르게 식별하고 해결할 수 있습니다.
  3. 느린 쿼리 로그: 앞서 언급했듯이 느린 쿼리 로그는 실행하는 데 미리 정의된 임계값보다 오래 걸리는 쿼리를 기록합니다. 이 로그는 성능 병목 현상과 비효율적인 쿼리를 식별하여 관리자가 데이터베이스의 전반적인 성능을 최적화하고 향상시키는 데 도움이 됩니다.
  4. 바이너리 로그: 바이너리 로그에는 데이터베이스에 대한 모든 데이터 변경(삽입, 업데이트 및 삭제) 기록이 포함됩니다. 복제 목적으로 사용되어 여러 MySQL 서버에서 데이터를 동기화할 수 있습니다.
  5. 릴레이 로그: 릴레이 로그는 MySQL 복제에만 적용됩니다. 복제 설정에서 슬레이브 서버에서 실행되기 전에 마스터 서버에서 받은 데이터를 저장합니다.

MySQL 느린 쿼리 로그를 활성화하는 방법은 무엇입니까 ?

다음은 MySQL 또는 MariaDB에 대한 느린 쿼리 로그를 활성화하는 단계입니다.

  1. 먼저 Bitwise를 사용하여 SSH에 로그인 해야 합니다. Bitwise SSH 클라이언트를 엽니다. 호스트, 포트 및 사용자 이름 세부 정보를 제공한 다음 초기 방법 드롭다운에서 비밀번호를 선택하고 로그인 버튼을 클릭하여 진행합니다. SSH 비밀번호를 입력하라는 팝업이 나타납니다. 제공된 필드에 SSH 비밀번호를 입력하십시오.
Bitwise를 사용하여 SSH에 로그인
MySQL 느린 쿼리 로그: 상세 가이드

2. 텍스트 편집기를 사용하여 /etc/mysql/my.cnf 파일에 액세스합니다. 이를 위해 먼저 Bitwise SSH 클라이언트에서 새 SFTP 창 으로 이동합니다.

Bitwise SSH 클라이언트에서 새 SFTP 창으로 이동합니다.

이제 원격 파일의 검색 표시줄에 /etc를 입력 하고 Enter 키를 누릅니다.

MySQL 느린 쿼리 로그 활성화

mysql 또는 MariaDB 파일을 엽니다.

MySQL 느린 쿼리 로그 활성화

이제 my.cnf를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 편집을 클릭합니다.

MySQL 느린 쿼리 로그 활성화

텍스트 편집기가 나타납니다. 다음 명령을 복사하여 파일 맨 아래에 붙여넣고 저장합니다.

 slow_query_log = 1 slow-query_log_file = /var/log/mysql-slow.log long_query_time = 2

3. 이제 Bitwise 터미널을 열고 다음 명령을 실행하여 /var/log/mysql-slow.log 파일을 생성 하고 mysql 사용자를 소유자로 할당합니다.

 touch /var/log/mysql-slow.log chown mysql:mysql /var/log/mysql-slow.log

4. MySQL 또는 MariaDB를 다시 시작 하려면 아래 명령을 실행합니다.

 /usr/local/cpanel/scripts/restartsrv_mysql

MySQL 느린 쿼리 로그 읽기

다음을 사용하여 느린 쿼리 로그가 포함된 파일에 액세스합니다.

/var/log/mysql/mysql-slow.log

로그 파일 내에서 각 느린 쿼리는 항목으로 기록됩니다. 이러한 항목에는 일반적으로 타임스탬프, 쿼리 실행 시간, 조사된 행 수 및 실제 SQL 문과 같은 세부 정보가 포함됩니다.

느린 쿼리 로그를 직접 읽는 대신 "mysqldumpslow" 명령을 사용하여 로그 내용을 구문 분석하고 요약하는 것이 더 유익한 경우가 많습니다. 다음과 같이 SSH를 통해 루트로 로그인한 상태에서 명령을 실행할 수 있습니다.

sudo -i mysqldumpslow /var/log/mysql/mysql-slow.log

아래 출력을 얻을 수 있습니다.

MySQL 느린 쿼리 로그 읽기

FAQ

mysqldumpslow 명령의 목적은 무엇입니까?

mysqldumpslow 명령은 MySQL 느린 쿼리 로그의 내용을 구문 분석하고 요약하는 역할을 합니다. 이를 통해 가장 자주 발생하는 느린 쿼리 및 해당 실행 시간에 대한 세부 정보를 포함하여 로그 파일에서 중요한 정보를 추출할 수 있습니다. mysqldumpslow /var/log/mysql/mysql-slow.log 를 실행하면 느린 쿼리를 효율적으로 분석하고 통찰력을 얻을 수 있습니다.

장기 모니터링에 느린 쿼리 로그를 사용할 수 있습니까?

느린 쿼리 로그는 단기 진단에 유용하지만 장기간 사용하면 상당한 양의 데이터가 생성될 수 있습니다. 장기적인 모니터링을 용이하게 하려면 모니터링 도구 및 성능 분석 솔루션을 사용하는 것과 같은 대체 접근 방식을 탐색하는 것이 좋습니다. 이렇게 하면 과도한 항목으로 로그가 오버플로되는 것을 방지하고 시간이 지남에 따라 데이터베이스 성능을 효과적으로 관리할 수 있습니다.

느린 쿼리 로그는 데이터베이스 성능 문제를 진단하는 데 어떻게 도움이 됩니까?

느린 쿼리 로그는 실행 시간이 느린 쿼리를 식별하므로 데이터베이스 성능 문제를 진단하는 데 중요한 역할을 합니다. 이러한 느린 쿼리 분석을 통해 관리자는 데이터베이스에서 성능 병목 현상과 비효율성을 정확하게 찾을 수 있습니다. 이 정보로 무장한 사용자는 계속해서 쿼리를 최적화하고 애플리케이션을 재구성하거나 필수 변경 사항을 구현하여 전체 시스템 성능을 크게 향상시킬 수 있습니다.

느린 쿼리 로그의 정보를 기반으로 쿼리를 최적화하려면 어떻게 해야 합니까?

로그에서 느린 쿼리를 식별한 후 다양한 방법을 통해 쿼리를 최적화할 수 있습니다. 여기에는 적절한 인덱스 추가, 쿼리 재작성 또는 데이터베이스 스키마 재구성이 포함됩니다. 또한 EXPLAIN 및 프로파일링과 같은 쿼리 최적화 기술을 사용하면 귀중한 통찰력을 제공하고 쿼리 성능을 크게 향상시킬 수 있습니다.

Slow Query Log는 MySQL에만 적용됩니까, 아니면 다른 데이터베이스 시스템과 함께 사용할 수 있습니까?

느린 쿼리 로그는 MySQL 및 MariaDB 데이터베이스 시스템 전용으로 설계되었습니다. 다른 데이터베이스 관리 시스템이 비슷한 기능을 제공할 수 있지만 로그 형식과 활성화 방법은 시스템마다 다를 수 있다는 점에 유의해야 합니다.