2013-06-10 2 views
0

long_query_time에 도달하자마자 실행하는 데 너무 많은 시간이 걸리는 쿼리를 로그 할 수 있는지 (또는 다른 방법으로 검색 할 수 있는지) 알고 싶습니다. MySQL은 실행이 끝나면 느린 쿼리 만 기록하기 때문입니다.MySQL의 느린 쿼리를 실시간으로 기록하십시오.

MySQL 관리자의 "서버 연결"탭을 확인하기 전에 느린 쿼리를 볼 수 있지만 로그가 발생하면 자동으로 알림을 받고 싶습니다.

+0

MySQL 관리자의 "서버 연결"탭에서 볼 수있는 것과 동일한 정보를 폴링하기위한 일종의 예약 된 작업을 설정하는 것보다는 현실적으로 천천히 쿼리하는 것이 좋습니다. 천천히 진행될 것으로 예상되는 경우 제대로 최적화/조정할 수 있도록 모니터링해야합니다. –

답변

1

쿼리가 x 초 이상 실행되는지 확인하기 위해 데이터베이스를 폴링하려는 경우 show processlist을 사용하거나 process list table으로 바로 이동할 수 있습니다.

select * from INFORMATION_SCHEMA.PROCESSLIST where time > TIME_IN_SECS 

이것은 데이터베이스에 더 많은로드를 추가하므로 매 초마다 수행하지 않는 것이 좋습니다. 그러나 이것은 "long_query_time에 도달하자마자"정보를 얻지 못한다는 것을 의미합니다.

+0

글쎄, 필자의 설명대로, 필자의 필요가 없다. 자바 애플리케이션에서 내 스레드 중 하나를 차단할 수있는 긴 쿼리를 알고 있어야한다. –