이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 13963|회답: 0

[출처] MySQL은 프로파일링을 통해 SQL 문이 느린 실행 원인을 분석합니다

[링크 복사]
게시됨 2017. 7. 6. 오전 11:12:17 | | | |

CleverCode의 한 동료가 최근 MySQL에서 SQL 문장을 분석하는 도구인 프로파일링을 추천했는데, 이 도구는 쿼리 과정에서 SQL 문장에 소요된 구체적인 시간을 정확히 분석할 수 있어 매우 유용하다는 것을 알게 되었습니다. CleverCode가 여기서 요약해 공유합니다.

1 소개

MySQL의 쿼리 프로파일러는 매우 편리한 쿼리 진단 분석 도구로, 쿼리 실행 과정에서 CPU, IO, IPC, SWAP 등 여러 자원의 소비 현황, 페이지 폴트, 컨텍스트 스위치 등의 발생 여부, 그리고 쿼리 실행 중 MySQL 호출된 각 함수의 위치를 파악할 수 있습니다.

MySQL 버전 5.0.37 이상은 PROFILING 디버깅 기능을 지원하여 SQL 문이 소비하는 자원의 세부 사항을 이해할 수 있게 합니다. 시스템의 getrusage() 함수를 호출해야 하기 때문에 Windows에서는 사용할 수 없고 Linux/Unix 클래스 플랫폼에서만 사용할 수 있습니다. 또한 PROPROFILE은 스레드가 아닌 프로세스를 처리하는 데 쓰이고, 서버의 다른 애플리케이션이 디버깅 결과에 영향을 줄 수 있으므로 개발 중 디버깅에 적합하며, 운영 환경에서 디버깅을 원한다면 그 한계를 주의해야 합니다.

2 운영

2.1 프로필이 활성화되어 있는지 확인하세요. 기본적으로 꺼져 있습니다.


2.2 프로파일링 활성화. 변수 프로파일링은 매번 다시 활성화해야 하는 사용자 변수입니다.


2.3 다음 문장을 실행하세요: QCACHE에 이전에 SQL을 저장하지 않으려면, SQL 실행 시 SELECT 문이 QCACHE 감지를 수행하지 않도록 강제로 하는 것이 권장됩니다. 이를 통해 분석의 정확성을 제출할 수 있습니다.


2.4 사용프로필 쿼리가장 최근의 작품명제의 실행 정보。 (분석: 20세> system_user 중에서 sql_no_cache 개수(*)를 선택)




2.5 쇼 프로필 사용. 서버에서 실행되는 문장 목록을 확인하세요. (쿼리 ID, 소요 시간, 문장).




2.6 show 프로필을 사용하여 공식 ID의 실행 정보를 조회합니다. 여기서는 ID 6으로 이 명제를 분석합니다. (분석: 20세> system_user 중에서 sql_no_cache 개수(*)를 선택).


2.7 CPU 및 블록 IO 소비 처리.




2.8 추가 정보 획득. "SHOW PROFILE *** FOR QUERY n"을 수행하면 얻을 수 있습니다. 참조 주소: http://dev.mysql.com/doc/refman/5.6/en/show-profile.html.







이전의:신입 보도
다음:블록버스터 뉴스! 미니 프로그램 개발은 무료입니다!
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com