목차
느린 쿼리 로그를 활성화하는 방법은 무엇입니까?
느린 쿼리 로그의 내용을 보는 방법은 무엇입니까?
FAQ 및 최적화 제안
로그 파일이 너무 큰 경우 어떻게해야합니까?
데이터 베이스 MySQL 튜토리얼 MySQL 슬로우 쿼리 로그

MySQL 슬로우 쿼리 로그

Jul 24, 2025 am 01:22 AM

mysql slow query logs를 활성화하려면 slow_query_log = 1을 설정하고 로그 경로를 지정하고 slow_query_log_file을 지정하고 임계 값 long_query_time을 설정하십시오. 색인을 사용하지 않는 쿼리 log_queries_not_using_indexes를 선택적으로 녹음 할 수 있습니다. 로그를 볼 때 query_time, rows_examined 및 rows_sent 표시기에주의하십시오. 일반적인 최적화 문제에는 인덱스 추가, 인덱스 실패 방지, 조인 작업 조정 및 대신 커서 페이징 사용이 포함됩니다. 과도한 로그는 일반 아카이브, 합리적인 임계 값 및 임시 로그 폐쇄로 제어 할 수 있습니다.

MySQL 슬로우 쿼리 로그

MySQL Slow Query Log는 데이터베이스 성능 문제를 해결하는 데 중요한 도구입니다. 데이터베이스 응답이 느리거나 일부 페이지가 특수 카드를로드하면 느린 쿼리 로그를 켜면 "범인"을 찾는 데 도움이 될 수 있습니다. 다음은 몇 가지 실용적인 방법과 예방 조치입니다.

MySQL 슬로우 쿼리 로그

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

느린 쿼리 로그를 활성화하려면 먼저 MySQL 구성 파일로 설정해야합니다. 일반적으로 my.cnf 또는 my.ini 파일에서 다음 항목을 추가하거나 수정하십시오.

  • slow_query_log = 1 : 느린 쿼리 로그를 켭니다.
  • slow_query_log_file = /path/to/your/slow.log : 로그 파일의 경로를 지정하십시오.
  • long_query_time = 1 : 느린 쿼리를 기록하기위한 임계 값을 설정하십시오. 단위는 초입니다. 여기에서 1 초로 설정됩니다.

또한 추가 :

MySQL 슬로우 쿼리 로그
  • log_queries_not_using_indexes = 1 : 시간 제한을 초과하지 않더라도 인덱스를 사용하지 않은 로그 쿼리.

구성을 수정 한 후 MySQL을 다시 시작하면 적용됩니다. 명령을 사용하여 동적으로 설정할 수 있지만 오랫동안이를 수행하는 것이 좋습니다.


느린 쿼리 로그의 내용을 보는 방법은 무엇입니까?

로그 컨텐츠는 약간 지저분 해 보이지만 구조는 실제로 매우 명확합니다. 각 레코드 세트에는 일반적으로 다음이 포함됩니다.

MySQL 슬로우 쿼리 로그
  • 타임 스탬프
  • 사용자 및 클라이언트 정보
  • 쿼리 실행 시간, 잠금 대기 시간, 스캔 행 수 등.
  • 실제 SQL 문이 실행되었습니다

예를 들어, 다음과 같은 클립이 표시 될 수 있습니다.

 # 시간 : 2024-12-05T10 : 00 : 00.123456Z
# user @ host : root [root] @ localhost []
# query_time : 2.345678 Lock_Time : 0.000123 Rows_Sent : 10 Rows_Examined : 100000
set timestamp = 1234567890;
user_id = 123 인 순서에서 *를 선택하십시오.

몇 가지 지표에 중점을 둡니다.

  • Query_time : 쿼리는 시간이 걸리므로 "느린"여부를 결정하는 열쇠입니다.
  • Rows_examined : 스캔 한 줄의 수는 클수록 문제가 발생할 가능성이 높습니다.
  • Rows_sent : 행 수를 반환합니다. 이 숫자가 작고 스캔 한 행의 수가 크면 인덱스가 효과적으로 사용되지 않음을 의미합니다.

FAQ 및 최적화 제안

일부 쿼리는 종종 느린 로그로 나타나므로 최적화를 고려해야합니다. 자주 묻는 질문은 다음과 같습니다.

  • 사용 된 색인 없음 : WHER 조건 필드에 적합한 색인이 있는지 확인하십시오.
  • 함수를 사용하면 인덱스가 실패하게됩니다 . 예를 들어, WHERE YEAR(create_time) = 2023 은 직접 범위 쿼리보다 낫습니다.
  • 너무 많은 조인 테이블 또는 잘못된 순서 : 조인 수를 적절하게 줄이거 나 조인 순서를 조정하십시오.
  • Pagination 쿼리 오프셋이 너무 큽니다 . LIMIT 10000, 10 과 같은 작업은 매우 비효율적이므로 대신 커서 페이징을 사용하는 것을 고려할 수 있습니다.

EXPLAIN 사용하여 SQL 실행 계획을 분석하여 전체 테이블 스캔, 임시 테이블, 파일 정렬 등이 있는지 확인할 수 있습니다.


로그 파일이 너무 큰 경우 어떻게해야합니까?

느린 쿼리를 켜면 로그가 특히 높은 일환 시스템에서 점점 더 축적됩니다. 제어하는 방법에는 여러 가지가 있습니다.

  • 로그 파일을 정기적으로 보관하고 Logrotate 도구로 자릅니다.
  • 너무 많은 관련이없는 쿼리를 기록하지 않도록 0.5 초 또는 더 짧은 합리적인 long_query_time 설정하십시오.
  • 일시적인 문제 해결 문제 일 경우 성능에 영향을 미치지 않도록 점검 한 후 로그를 끄는 것을 잊지 마십시오.

기본적으로 그게 다야. 느린 쿼리 로그는 좋은 도구이지만 올바른 장소에서 사용해야합니다. 그렇지 않으면 추가적인 짐을 가져옵니다. 핵심은 데이터베이스 성능을 진정으로 개선하기 위해 정기적으로보고 분석 및 최적화하는 것입니다.

위 내용은 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 도구입니다.

Stock Market GPT

Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

MySQL에서 Group_Concat 분리기를 변경하는 방법 MySQL에서 Group_Concat 분리기를 변경하는 방법 Aug 22, 2025 am 10:58 AM

Group_Concat () 함수에서 분리기 키워드를 사용하여 분리기를 사용자 정의 할 수 있습니다. 1. 분리기를 사용하여 구분 기호와 같은 사용자 정의 분리기를 지정하십시오. '분리기는 세미콜론 및 플러스 공간으로 변경할 수 있습니다. 2. 일반적인 예제에는 파이프 문자 '|', space '', 라인 브레이크 문자 '\ n'또는 사용자 정의 문자열 '->'가 포함됩니다. 3. 분리기는 문자열 리터럴 또는 표현식이어야하며 결과 길이는 Group_Concat_Max_Len 변수에 의해 제한되며 SetSessionGroup_CONCAT_MAX_LEN = 100000으로 조정할 수 있습니다. 4. 분리기는 선택 사항입니다

MySQL에서 ifnull ()를 사용하는 방법? MySQL에서 ifnull ()를 사용하는 방법? Aug 22, 2025 pm 02:00 PM

ifnull () inmysqlreturnsthefirstexpressionifitispitisnull, OtherwiserEturnsthesecondexpression, gomingIdealforPelacingNullValues; forexample, ifnull (middle_name, 'n/a') 표시 '/a'whenmiddle_nameisnull, ifnull, 0)

MySQL에서 유사한 연산자를 사용하는 방법 MySQL에서 유사한 연산자를 사용하는 방법 Aug 22, 2025 am 12:23 AM

thelikeoperatorinmysqlisusedToSearchforpatternsintextDatausingWildCards; 1. 사용%TomatchAnyofofCharactersandTomatchAsingle 캐릭터; 2.forexample, 'John%'findsnamesstartingwithjohn, '%son'findsnamesendingwithson,'%ar%'findsnamescontainingar,'\ _ \ _ \ _ \ _

MySQL에서 테이블 크기를 얻는 방법? MySQL에서 테이블 크기를 얻는 방법? Aug 21, 2025 am 10:02 AM

MySQL 테이블의 크기를 확인하려면 information_schema.tables를 쿼리하여 얻을 수 있습니다. 구체적인 방법은 select 문을 사용하여 data_length와 index_length 필드를 결합하여 MB 장치로 변환하는 것입니다. 단일 테이블, 모든 테이블 또는 별도로 데이터 및 인덱스 크기를 볼 수 있습니다. 이 방법은 대부분의 경우에 적합하지만 값은 대략적입니다. InnoDB 테이블에는 차이가있을 수 있습니다. 가장 일반적이고 표준적인 방법은 Information_Schema 데이터베이스의 테이블 테이블을 쿼리하여 결과를 얻는 것입니다.

설명 진술은 무엇이며 MySQL에서 사용하는 방법은 무엇입니까? 설명 진술은 무엇이며 MySQL에서 사용하는 방법은 무엇입니까? Aug 22, 2025 am 07:27 AM

설명을 돕는 helpingperformanceIssues.1.useexplainbeforeaselect, 삽입, 업데이트, 삭제, orreplacestatement, mostcommonlywithselect

MySQL에서 교착 상태를 처리하는 방법은 무엇입니까? MySQL에서 교착 상태를 처리하는 방법은 무엇입니까? Aug 22, 2025 am 04:25 AM

DeadlocksinmysqloccurwhentcurnsactionsBlockeacheachechotherbyholdingnededlocks, butcanbemanagefecticallyproughprevention, 취급 및 모니터링

MySQL에서 이벤트 스케줄러를 활성화 또는 비활성화하는 방법 MySQL에서 이벤트 스케줄러를 활성화 또는 비활성화하는 방법 Aug 22, 2025 am 09:59 AM

Tochecktheeventschedulerstatus, useshowvaribles like'event_scheduler ';. 2.toenableordisabletemporally, audestglobalevent_scheduler = onoroff, whiteficeptiveTectiveTilThenexTrestArt.3.3.ToEnableDisablePermanely, addevent_scheduler [mysqld)

MySQL 성능 벤치마킹 : 도구 및 방법론 MySQL 성능 벤치마킹 : 도구 및 방법론 Sep 05, 2025 am 02:27 AM

MySQL 성능 벤치마킹의 핵심은 올바른 도구와 방법을 선택하고 과학 테스트 계획을 개발하는 것입니다. 1. 일반적인 도구는 Sysbench (OLTP 스트레스 테스트에 적합), MySQLSLAP (Lightweight Formal Tool), HammerDB (그래픽 엔터프라이즈 레벨 테스트) 및 JMeter (Flexible Database Stress Testing); 2. 테스트 계획은 목표를 명확히하고 매개 변수를 설정하고 실제 데이터를 사용하며 변수를 제어하여 정확성을 보장해야합니다. 3. QPS/TPS, 응답 시간, 자원 사용 및 오류율과 같은 핵심 지표에주의를 기울입니다. 4. 테스트 환경은 생산에 가깝고 하드웨어 일관성을 유지하고 네트워크 안정성을 유지하고, 간섭 서비스를 종료하고, 여러 번 평균으로 실행되며, 생산 환경에서 직접 테스트를 피해야합니다.

See all articles