MySQL 느린 쿼리 로그: 상세 가이드
게시 됨: 2023-08-01이 문서는 MySQL 느린 쿼리 로그에 대한 명확한 이해와 이를 효과적으로 해석하는 방법을 제공하도록 설계된 간결하면서도 포괄적인 리소스입니다. 이 가이드는 사용자가 성능 병목 현상과 잠재적인 데이터베이스 문제를 식별하고 해결할 수 있도록 느린 쿼리 로그와 관련된 복잡성을 해결하는 것을 목표로 합니다.
MySQL용 느린 쿼리 로그를 활성화하면 서버에 영향을 미칠 수 있는 성능 및 효율성 문제를 진단하는 데 귀중한 자산임이 입증되었습니다. 실행 시간이 현저하게 느린 쿼리를 찾아내어 쿼리를 담당하는 애플리케이션을 재구성하거나 쿼리 자체를 최적화하여 효과적으로 해결할 수 있습니다. 이 능동적인 접근 방식은 쿼리가 최적의 효율성으로 구성되도록 하여 궁극적으로 전체 시스템 성능을 향상시킵니다.
목차
MySQL 소개
MySQL은 다양한 웹 애플리케이션 및 소프트웨어의 데이터를 저장, 관리 및 검색하는 데 널리 사용되는 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템 중 하나입니다. 정교한 데이터베이스 시스템과 마찬가지로 MySQL은 활동 및 성능에 대한 필수 정보를 기록하는 강력한 로깅 메커니즘을 제공합니다. 이러한 로그는 데이터베이스 동작을 모니터링하고 문제를 해결하는 데 중요한 역할을 하며 시스템의 상태와 효율성에 대한 귀중한 통찰력을 제공할 수 있습니다.
MySQL이 생성하는 로그 유형
MySQL에 의해 생성되는 여러 유형의 로그가 있으며 각각 특정 용도를 제공합니다.
- 일반 쿼리 로그 : 이 로그는 소스에 관계없이 서버에서 실행된 모든 SQL 쿼리를 기록합니다. 실행 중인 쿼리의 순서를 디버깅하고 이해하기 위한 강력한 도구이지만 방대한 양의 데이터를 생성할 수 있어 주로 단기 진단에 적합합니다.
- 오류 로그: 오류 로그는 MySQL 서버 작동 중에 발생한 모든 오류를 캡처합니다. 이러한 오류에는 데이터베이스의 기능에 영향을 줄 수 있는 시작, 종료 또는 기타 중요한 오류와 관련된 문제가 포함될 수 있습니다. 오류 로그를 모니터링하면 관리자가 잠재적인 문제를 빠르게 식별하고 해결할 수 있습니다.
- 느린 쿼리 로그: 앞서 언급했듯이 느린 쿼리 로그는 실행하는 데 미리 정의된 임계값보다 오래 걸리는 쿼리를 기록합니다. 이 로그는 성능 병목 현상과 비효율적인 쿼리를 식별하여 관리자가 데이터베이스의 전반적인 성능을 최적화하고 향상시키는 데 도움이 됩니다.
- 바이너리 로그: 바이너리 로그에는 데이터베이스에 대한 모든 데이터 변경(삽입, 업데이트 및 삭제) 기록이 포함됩니다. 복제 목적으로 사용되어 여러 MySQL 서버에서 데이터를 동기화할 수 있습니다.
- 릴레이 로그: 릴레이 로그는 MySQL 복제에만 적용됩니다. 복제 설정에서 슬레이브 서버에서 실행되기 전에 마스터 서버에서 받은 데이터를 저장합니다.
MySQL 느린 쿼리 로그를 활성화하는 방법은 무엇입니까 ?
다음은 MySQL 또는 MariaDB에 대한 느린 쿼리 로그를 활성화하는 단계입니다.
- 먼저 Bitwise를 사용하여 SSH에 로그인 해야 합니다. Bitwise SSH 클라이언트를 엽니다. 호스트, 포트 및 사용자 이름 세부 정보를 제공한 다음 초기 방법 드롭다운에서 비밀번호를 선택하고 로그인 버튼을 클릭하여 진행합니다. SSH 비밀번호를 입력하라는 팝업이 나타납니다. 제공된 필드에 SSH 비밀번호를 입력하십시오.
2. 텍스트 편집기를 사용하여 /etc/mysql/my.cnf 파일에 액세스합니다. 이를 위해 먼저 Bitwise SSH 클라이언트에서 새 SFTP 창 으로 이동합니다.
이제 원격 파일의 검색 표시줄에 /etc를 입력 하고 Enter 키를 누릅니다.
mysql 또는 MariaDB 파일을 엽니다.
이제 my.cnf를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 편집을 클릭합니다.
텍스트 편집기가 나타납니다. 다음 명령을 복사하여 파일 맨 아래에 붙여넣고 저장합니다.
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
아래 출력을 얻을 수 있습니다.
FAQ
mysqldumpslow 명령의 목적은 무엇입니까?
mysqldumpslow 명령은 MySQL 느린 쿼리 로그의 내용을 구문 분석하고 요약하는 역할을 합니다. 이를 통해 가장 자주 발생하는 느린 쿼리 및 해당 실행 시간에 대한 세부 정보를 포함하여 로그 파일에서 중요한 정보를 추출할 수 있습니다. mysqldumpslow /var/log/mysql/mysql-slow.log 를 실행하면 느린 쿼리를 효율적으로 분석하고 통찰력을 얻을 수 있습니다.
장기 모니터링에 느린 쿼리 로그를 사용할 수 있습니까?
느린 쿼리 로그는 단기 진단에 유용하지만 장기간 사용하면 상당한 양의 데이터가 생성될 수 있습니다. 장기적인 모니터링을 용이하게 하려면 모니터링 도구 및 성능 분석 솔루션을 사용하는 것과 같은 대체 접근 방식을 탐색하는 것이 좋습니다. 이렇게 하면 과도한 항목으로 로그가 오버플로되는 것을 방지하고 시간이 지남에 따라 데이터베이스 성능을 효과적으로 관리할 수 있습니다.
느린 쿼리 로그는 데이터베이스 성능 문제를 진단하는 데 어떻게 도움이 됩니까?
느린 쿼리 로그는 실행 시간이 느린 쿼리를 식별하므로 데이터베이스 성능 문제를 진단하는 데 중요한 역할을 합니다. 이러한 느린 쿼리 분석을 통해 관리자는 데이터베이스에서 성능 병목 현상과 비효율성을 정확하게 찾을 수 있습니다. 이 정보로 무장한 사용자는 계속해서 쿼리를 최적화하고 애플리케이션을 재구성하거나 필수 변경 사항을 구현하여 전체 시스템 성능을 크게 향상시킬 수 있습니다.
느린 쿼리 로그의 정보를 기반으로 쿼리를 최적화하려면 어떻게 해야 합니까?
로그에서 느린 쿼리를 식별한 후 다양한 방법을 통해 쿼리를 최적화할 수 있습니다. 여기에는 적절한 인덱스 추가, 쿼리 재작성 또는 데이터베이스 스키마 재구성이 포함됩니다. 또한 EXPLAIN 및 프로파일링과 같은 쿼리 최적화 기술을 사용하면 귀중한 통찰력을 제공하고 쿼리 성능을 크게 향상시킬 수 있습니다.
Slow Query Log는 MySQL에만 적용됩니까, 아니면 다른 데이터베이스 시스템과 함께 사용할 수 있습니까?
느린 쿼리 로그는 MySQL 및 MariaDB 데이터베이스 시스템 전용으로 설계되었습니다. 다른 데이터베이스 관리 시스템이 비슷한 기능을 제공할 수 있지만 로그 형식과 활성화 방법은 시스템마다 다를 수 있다는 점에 유의해야 합니다.