하나. 서문
특정 SQL의 성능을 분석하고 싶을 때 사용할 수 있습니다.
프로파일링은 mysql5.0.3부터만 가능합니다.
프로필을 시작한 후 잘못된 진술을 포함한 모든 쿼리가 기록됩니다.
세션을 닫거나 프로파일링=0으로 설정하여 닫습니다. (profiling_history_size 매개변수를 0으로 설정하면 MySQL을 끄는 프로파일링 효과도 있습니다.)
이 도구를 사용하면 SQL 실행 상태, 시스템 잠금 기간을 쿼리할 수 있습니다. 테이블 잠금 테이크 등
은 문의 I/O 소비와 CPU 소비를 찾는 데 매우 중요합니다. (SQL 문 실행에 사용되는 두 가지 가장 큰 리소스는 IO 및 CPU입니다)
--mysql5.7 이후에는 프로필 정보가 점차 폐기됩니다. MySQL에서는 성능 스키마 사용을 권장합니다
둘. 프로세스
간단한 프로세스는 다음과 같습니다.
set profiling=1; //打开分析 run your sql1; run your sql2; show profiles; //查看sql1,sql2的语句分析 show profile for query 1; //查看sql1的具体分析 show profile ALL for query 1; //查看sql1相关的所有分析【主要看i/o与cpu,下边分析中有各项意义介绍】 set profiling=0; //关闭分析
셋. 의미분석
위 그림의 가로바의 의미
+--------- ---- --------+----------+----------+------------- --+
"상태": "쿼리 종료", 상태
"기간": "1.751142" , 기간
"CPU_user": "0.008999", CPU 사용자
"CPU_system": "0.003999", CPU 시스템
"Context_voluntary": "98", 컨텍스트 활성 전환
"Context_invocal": "0", 컨텍스트 수동 전환
"Block_ops_in": "8", 입력 작업 차단
"Block_ops_out": "32", 출력 작업 차단
"Messages_sent": "0 ", 메시지 전송됨
"Messages_received": "0", 메시지 수신됨
"Page_faults_major": "0", 메인 페이징 오류
"Page_faults_minor": "0", 페이지 결함
"Swaps": "0", 스왑 수
"Source_function": "mysql_execute_command", 소스 함수
"Source_file": "sql_parse.cc", 소스 파일
"Source_line": "4465" 소스 코드 라인
+------------------- -- -+----------+----------+---+
위 사진 세로줄의 의미
+---------+-- ----- -+----------+---+
시작: 시작
권한 확인 중: 권한 확인
테이블 열기: 테이블 열기
init: 초기화
시스템 잠금: 시스템 잠금
최적화: 최적화
통계: 통계
준비: 준비
실행 중: 실행 중
데이터 보내기: 데이터 보내기
결과 정렬: 정렬
end :结束
query end :查询 结束
closing tables : 关闭表 /去除TMP 表
freeing items : 释放物品
cleaning up :清理
+----------------------+----------+----------+------------+
一般情况下,常用以下语句也就够了 :
mysql->SHOW profile CPU,BLOCK IO io FOR query 2;
以上就是Mysql分析-profile详解的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!