2016-07-28 13 views
0

내 연구에 따르면 mysqldumpslow 유틸리티를 사용하여 로그를 구문 분석하고 결과를 추출했지만 생각할 수는 없다고 생각했습니다. 그것을 사용하는 방법. 10 분 간격으로 느린 쿼리 로그에 기록 된 쿼리 수를 계산하여 값을 분석 할 수 있도록하고 싶습니다.mysql 느린 쿼리 로그에 10 분 간격으로 기록 된 쿼리 수 (카운트)를 추출하는 방법

감사

+0

로그 파일의 샘플 출력 : SELECT * FROM pets; # 시간 : 160,726 13시 13분 32초 # 사용자 @ 호스트 : 루트 [루트] @ localhost를 [] ID : 1477608 # Query_time : 0.001048 Lock_time : 0.000807 Rows_sent : 1 Rows_examined : 1 SET 타임 스탬프 = 1469553212; SELECT COUNT (*) from information_schema.PROCESSLIST; # 시간 : 160726 13:18:49 # User @ Host : root [root] @ localhost [] ID : 1477685 # Query_time : 0.000486 Lock_time : 0.000155 Rows_sent : 1 Rows_examined : 8 SET timestamp = 1469553529; –

답변

1

당신은 새로운 slow.log 10 분마다를 생성하고 그들에게 잇달아 분석 logrotate를 사용할 수 있습니다. 당신이 리눅스를 사용하고 있다는 것을 암시합니다. 당신의 예제는 mysql 인스턴스가 "log-queries-not-using-indexes"로 설정되어 있다는 것을 보여 주므로 로그 파일에서도 인덱스를 사용하지 않는 SELECT를 얻을 수 있습니다.

업데이트 :

난 아직도 당신이 사용하고있는 OS 잘 모릅니다 때문에, 문제에 대한 일반적인 aproach는 MySQL의에 느린 로그를 리디렉션 자체가 the mysql docs을 다음과 느린 로그 테이블 등으로부터 모든 레코드를 얻을 것이다 :

SELECT COUNT(*) FROM slow_log; 

기록 된 Querys의 총량을 알려줍니다. 자세히 알아보기 :

TRUNCATE TABLE slow_log; 

10 분마다 스크립트를 실행하면 원하는 정보가 출력됩니다.

+0

전체 로그 정보가 필요하지 않습니다. 난 연속 10 분 간격에 대한 쿼리의 총 개수가 필요합니다. 그 문제를 해결할만한 권고가 있습니까? –

+0

고마워요 @ 스벤. 그것은 작동했습니다 –

+0

내 대답을 올바른 것으로 표시하면 감사하겠습니다. – stewe