목차
소개
기본 지식 검토
핵심 개념 또는 기능 분석
느린 쿼리 로그의 정의 및 기능
작동 방식
사용의 예
기본 사용
고급 사용
일반적인 오류 및 디버깅 팁
성능 최적화 및 모범 사례
데이터 베이스 MySQL 튜토리얼 MySQL에서 느린 쿼리를 어떻게 식별 할 수 있습니까?

MySQL에서 느린 쿼리를 어떻게 식별 할 수 있습니까?

Apr 26, 2025 am 12:15 AM
MySQL 슬로우 쿼리

느린 쿼리 로그를 활성화하고 임계 값을 설정하여 MySQL에서 느린 쿼리를 식별 할 수 있습니다. 1. 느린 쿼리 로그를 활성화하고 임계 값을 설정하십시오. 2. 느린 쿼리 로그 파일을보고 분석하고 심층 분석을 위해 MySQLDumpSlow 또는 PT-Query 소수성과 같은 도구를 사용하십시오. 3. 인덱스 최적화, 쿼리 재 작성 및 select *의 사용을 피함으로써 느린 쿼리 최적화를 달성 할 수 있습니다.

MySQL에서 느린 쿼리를 어떻게 식별 할 수 있습니까?

소개

데이터베이스를 관리 할 때 성능 최적화가 최우선 과제입니다. 널리 사용되는 데이터베이스 시스템으로서 느린 쿼리를 식별하는 방법은 모든 데이터베이스 관리자에게 필수 기술입니다. 이 기사는 MySQL에서 느린 쿼리를 식별하는 방법에 대한 깊은 이해를 안내하며 이러한 기술을 사용하면 데이터베이스의 성능을 크게 향상시킬 수 있습니다.

이 기사에서는 MySQL의 느린 쿼리 로깅 기능, 구성 및 사용 방법 및 이러한 로그를 분석하여 데이터베이스의 응답 속도를 늦추는 범인을 식별하는 방법을 살펴 봅니다. 또한 실제 프로젝트에서 개인적으로 직면 한 몇 가지 문제와 솔루션을 공유하여 영감을주기를 바랍니다.

기본 지식 검토

MySQL의 Slow Query Log는 실행 시간이 특정 임계 값을 초과하는 쿼리를 로깅하는 데 유용한 도구입니다. 여기서 임계 값은 귀하의 요구에 따라 설정할 수 있습니다. 느린 쿼리 로그는 느린 쿼리를 찾는 데 도움이 될뿐만 아니라 실행 시간, 쿼리 문 자체, 영향을받는 행 수 등과 같은 이러한 쿼리에 대한 자세한 정보를 제공합니다.

Slow Query Logs를 사용하려면 MySQL 서버 에서이 기능을 활성화해야합니다. MySQL 구성 파일 (my.cnf 또는 my.ini)에서 관련 설정을 보면 확인할 수 있습니다.

핵심 개념 또는 기능 분석

느린 쿼리 로그의 정의 및 기능

Slow Query Log은 MySQL에서 실행 시간이 설정 임계 값을 초과하는 쿼리를 기록하는 데 사용하는 로그 파일입니다. 주요 기능은 데이터베이스 관리자가 데이터베이스 성능에 영향을 미치는 쿼리를 신속하게 찾아서 최적화하는 데 도움이됩니다.

 -Slow Query 로그 세트를 활성화하십시오. Global slow_query_log = 'on';
- 느린 쿼리 임계 값을 10 초로 설정하십시오.

위 명령을 사용하면 느린 쿼리 로그를 활성화하고 임계 값을 설정할 수 있습니다. 이 설정은 MySQL 재시작 후에 실패하며 영구적으로 발효하려면 구성 파일을 수정해야합니다.

작동 방식

느린 쿼리 로그의 작동 원리는 복잡하지 않습니다. 쿼리의 실행 시간이 설정 한 임계 값을 초과하면 MySQL은 쿼리를 느린 쿼리 로그 파일에 기록합니다. 로그 파일은 일반적으로 MySQL의 데이터 디렉토리에 저장되며 파일 이름은 slow_query.log입니다 (구성 파일을 통해 수정할 수 있음).

실제로 사용하면 느린 쿼리 로그 파일이 매우 커질 수 있습니다. 현재 MySQL의 로그 회전 함수 사용을 고려하거나 오래된 로그를 정기적으로 청소할 수 있습니다.

사용의 예

기본 사용

느린 쿼리 로그를 보려면 로그 파일을 직접 읽을 수 있습니다.

 # 느린 쿼리보기 로그 tail -f/path/to/your/mysql/data/slow_query.log

최신 느린 쿼리 로그 항목이 표시됩니다. 이 로그를 분석하려면 MySQL과 함께 제공되는 mysqldumpslow 도구를 사용할 수 있습니다.

 # mysqldumpslow를 사용하여 느린 쿼리 로그를 분석하십시오.

고급 사용

실제 프로젝트에서는 느린 쿼리 로그를 보는 것만으로는 충분하지 않으며 때로는 더 자세한 분석이 필요하다는 것을 알았습니다. 예를 들어, Percona Toolkit에서 PT-Query Figest와 같은 타사 도구를 사용하여 느린 쿼리 로그를 깊이 분석 할 수 있습니다. 이 도구는보다 자세한 쿼리 통계 및 성능 분석을 제공 할 수 있습니다.

 # pt-query-digest를 사용하여 느린 쿼리 로그를 분석하여 pt-query-digest/path/to/your/mysql/data/slow_query.log> slow_query_analysis.txt

일반적인 오류 및 디버깅 팁

느린 쿼리 로그를 사용할 때의 일반적인 문제에는 과도한 로그 파일로 인한 불충분 한 디스크 공간 또는 불완전한 로깅이 포함됩니다. 이러한 문제에 대한 솔루션에는 다음이 포함됩니다.

  • 로그 파일을 정기적으로 청소하거나 회전시킵니다
  • 실제로주의가 필요한 쿼리 만 기록되도록 느린 쿼리 임계 값을 조정하십시오.
  • Percona Toolkit과 같은보다 효율적인 로그 분석 도구를 사용하십시오

성능 최적화 및 모범 사례

느린 쿼리를 최적화 할 때 다음 사항이 매우 중요하다는 것을 알았습니다.

  • 인덱스 최적화 : 느린 쿼리 로그를 분석하여 인덱스를 사용하지 않은 쿼리를 찾아이 쿼리에 적절한 인덱스를 추가하십시오.
  • 쿼리 다시 작성 : 때로는 간단한 쿼리 다시 작성하면 성능이 크게 향상 될 수 있습니다. 예를 들어, 하위 쿼리를 조인 작업에 다시 작성하십시오.
  • ** SELECT를 사용하지 마십시오 ** : SELECT를 사용하는 대신 필요한 필드 만 선택하여 데이터 전송량을 줄이고 쿼리 성능을 향상시킬 수 있습니다.

실제 프로젝트에서는 사용되지 않았기 때문에 복잡한 쿼리가 최대 몇 분 동안 실행 된 사례를 만났습니다. 느린 쿼리 로그를 분석 하여이 문제를 발견하고 관련 필드에 인덱스를 추가했으며 쿼리 시간이 몇 분에서 몇 초로 줄었습니다.

일반적으로 MySQL에서 느린 쿼리를 식별하고 최적화하는 것은 지속적인 모니터링 및 조정이 필요한 진행중인 프로세스입니다. 이 기사가 MySQL 성능 최적화로가는 길을 한 걸음 더 나아갈 수 있기를 바랍니다.

위 내용은 MySQL에서 느린 쿼리를 어떻게 식별 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

PHP 튜토리얼
1596
276
MySQL에서 데이터베이스 활동을 감사하는 방법은 무엇입니까? MySQL에서 데이터베이스 활동을 감사하는 방법은 무엇입니까? Aug 05, 2025 pm 01:34 PM

USEMYSQLENTERPRISEAUDITPPLUGINIFONTERERPRISEEDITIONSERVER-AUDIT = force_plus_permanentandCustomizeeVentsViaser_Audit_events;

MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까? MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까? Aug 06, 2025 pm 04:49 PM

MySQL은 버전 8.0.16에서 효과적인 도메인 무결성을 강제하기위한 체크 제약 조건을 지원합니다. 1. 표를 작성할 때 제약 조건을 추가하십시오 : CreateTable을 사용하여 ≥18, 급여> 0, 부서 한계 값과 같은 점검 조건을 정의하십시오. 2. 제약 조건을 추가하기 위해 테이블을 수정하십시오. AltertableAddConstraint를 사용하여 비어 있지 않은 이름과 같은 필드 값을 제한하십시오. 3. 복잡한 조건 사용 : 종료 날짜 ≥ 스테이트 날짜 및 완료 상태와 같은 다중 열 논리 및 표현을 지원하십시오. 완료 상태에는 종료 날짜가 있어야합니다. 4. 제약 조건 삭제 : altertabledropconstraint를 사용하여 삭제할 이름을 지정합니다. 5. 노트 : MySQL8.0.16, Innodb 또는 Myisam을 인용해야합니다.

객체 수준의 권한으로 MySQL 보안 객체 수준의 권한으로 MySQL 보안 Jul 29, 2025 am 01:34 AM

TosecureMySQLeffectively,useobject-levelprivilegestolimituseraccessbasedontheirspecificneeds.Beginbyunderstandingthatobject-levelprivilegesapplytodatabases,tables,orcolumns,offeringfinercontrolthanglobalprivileges.Next,applytheprincipleofleastprivile

MySQL 데이터베이스에서 태깅 시스템을 구현하는 방법은 무엇입니까? MySQL 데이터베이스에서 태깅 시스템을 구현하는 방법은 무엇입니까? Aug 05, 2025 am 05:41 AM

useamany-to-manyrelationshipwithajunctiontabletolinkitemsandtagsviathreetables : 항목, 태그, anditem_tags.2

대형 MySQL 테이블을 관리하기위한 모범 사례 대형 MySQL 테이블을 관리하기위한 모범 사례 Aug 05, 2025 am 03:55 AM

대형 테이블을 다룰 때 MySQL 성능 및 유지 보수 가능성은 직면하고 구조 설계, 인덱스 최적화, 테이블 하위 테이블 전략 등을 시작해야합니다. 1. 기본 키 및 색인을 합리적으로 설계해야합니다. 자체 증가 정수를 기본 키로 사용하여 페이지 분할을 줄이는 것이 좋습니다. 오버레이 인덱스를 사용하여 쿼리 효율성을 향상시킵니다. 느린 쿼리 로그를 정기적으로 분석하고 유효하지 않은 인덱스를 삭제하십시오. 2. 파티션 테이블의 합리적 사용 : 시간 범위 및 쿼리 및 유지 보수 효율성을 향상시키기위한 기타 전략에 따른 파티션이지만 분할 및 절단 문제에주의를 기울여야합니다. 3. 분리 및 도서관 분리를 읽고 쓰고 쓰는 것을 고려하십시오 : 읽기 및 쓰기 분리는 메인 라이브러리의 압력을 완화시킵니다. 라이브러리 분리 및 테이블 분리는 많은 양의 데이터가있는 시나리오에 적합합니다. 미들웨어를 사용하고 거래 및 크로스 스토어 쿼리 문제를 평가하는 것이 좋습니다. 초기 계획과 지속적인 최적화가 핵심입니다.

MySQL에서 모든 데이터베이스를 표시하는 방법 MySQL에서 모든 데이터베이스를 표시하는 방법 Aug 08, 2025 am 09:50 AM

MySQL에 모든 데이터베이스를 표시하려면 ShowDatabases 명령을 사용해야합니다. 1. MySQL 서버에 로그인 한 후 ShowDatabase를 실행할 수 있습니다. 현재 사용자가 액세스 할 권한이있는 모든 데이터베이스를 나열하도록 명령. 2. Information_Schema, MySQL, Performance_Schema 및 SYS와 같은 시스템 데이터베이스는 기본적으로 존재하지만 권한이 부족한 사용자는이를 볼 수 없을 수 있습니다. 3. SelectSchema_namefrominformation_schema.schemata를 통해 데이터베이스를 쿼리하고 필터링 할 수도 있습니다. 예를 들어, 사용자가 만든 데이터베이스 만 표시하려면 시스템 데이터베이스를 제외합니다. 사용하십시오

MySQL의 기존 테이블에 기본 키를 추가하는 방법은 무엇입니까? MySQL의 기존 테이블에 기본 키를 추가하는 방법은 무엇입니까? Aug 12, 2025 am 04:11 AM

기존 테이블에 기본 키를 추가하려면 AddPrimarykey 절을 사용하여 Altertable 문을 사용하십시오. 1. 대상 열에 널 값이없고 복제가 없으며 NOTNULL로 정의되어 있는지 확인하십시오. 2. 단일 열차 기본 키 구문은 Altertable 테이블 이름 AddPrimaryKey (열 이름)입니다. 3. 멀티 컬럼 조합 기본 키 구문은 Altertable 테이블 이름 AddPrimaryKey (열 1, 열 2)입니다. 4. 열에서 NULL을 허용하는 경우 먼저 NOTNULL을 설정하도록 수정을 실행해야합니다. 5. 각 테이블에는 하나의 기본 키만이있을 수 있으며 추가하기 전에 기존 기본 키를 삭제해야합니다. 6. 직접 늘려야하는 경우 modify를 사용하여 auto_increment를 설정할 수 있습니다. 작동하기 전에 데이터를 확인하십시오

일반적인 MySQL 연결 오류 문제를 해결하는 방법은 무엇입니까? 일반적인 MySQL 연결 오류 문제를 해결하는 방법은 무엇입니까? Aug 08, 2025 am 06:44 AM

MySQL 서비스가 실행 중인지 확인하고 sudosystemctlstatusmysql을 사용하여 확인하고 시작하십시오. 2. 원격 연결을 허용하고 서비스를 다시 시작하기 위해 BAND-ADDRESS가 0.0.0.0으로 설정되어 있는지 확인하십시오. 3. 3306 포트가 열려 있는지 확인하고 포트를 허용하도록 방화벽 규칙을 확인하고 구성하십시오. 4. "AccessDenied"오류의 경우 사용자 이름, 비밀번호 및 호스트 이름을 확인한 다음 MySQL에 로그인하여 MySQL.user 테이블을 쿼리하여 권한을 확인해야합니다. 필요한 경우 사용자를 생성하거나 업데이트하여 'Your_user'@'%'사용과 같은 승인; 5. Caching_sha2_password로 인해 인증이 손실 된 경우

See all articles