2010-01-28 4 views
3

MySQL 데이터베이스에서로드 및 사용 통계를 얻기 위해 현재 PHP 응용 프로그램에서 향후 구현을위한 로깅 시스템을 개발하기 시작합니다.mysql 쿼리 로깅

통계입니다 나중에 가장 확실하게 원인이 있기 때문에 앱이 테스트 단계에있을 때,이 경우에만 사용됩니다 초당 데이터베이스 호출, 쿼리 시간 등 물론

에 대한 정보를 얻을 것이다 사용됩니다

약간의 추가적인 하중 자체.

그러나 가장 큰 의문점은 MYSQL을 사용하여 쿼리를 기록하거나 파일 기반 시스템을 사용해야한다는 것입니다. 파일 기반 시스템을 사용하여 로그를 처리 할 때 여러 위치에서 글을 작성할 수있는 무언가를 만드는 것은 다소 골칫거리가 아닐까?

어떻게 처리하겠습니까?

답변

3

MySQL에는 이미 로깅 기능이 내장되어 있으므로 설명서의 Chapter 5.2에서 이에 대한 설명이 나와 있습니다. 일반 쿼리 로그 (모든 쿼리), 바이너리 쿼리 로그 (데이터 변경 쿼리) 및 느린 로그 (너무 오래 걸리는 쿼리 또는 인덱스 사용 안 함)에 관심이있을 것입니다.

자신 만의 솔루션 사용을 주장하는 경우 모든 DB 호출이 통과하는 데이터베이스 중간 계층을 작성하여 타이밍 측면을 처리 할 수 ​​있습니다. 당신이 어디에 쓰는지에 관해서는, 당신이 devel에 있다면, 그것은별로 중요하지 않지만, 두 번째 DB를 사용하는 아이디어는 나쁘지 않습니다. MySQL의 다른 인스턴스 (다른 머신에서 사용하거나 다른 포트를 사용하는 다른 인스턴스)를 사용하는 것과는 완전히 별개의 DB를 사용할 필요가 없습니다. 두 번째 MySQL 인스턴스를 파일 시스템 대신 사용하려고합니다. SUM 및 AVG와 같은 모든 좋은 SQL 함수를 사용하여 데이터를 구문 분석 할 수 있습니다.

1

MySQL에서 테스트를 수행하는 경우 Postgres과 같은 다른 데이터베이스에 결과를 저장해야 작업량을 늘릴 수 있습니다.

3

관심이있는 모든 것이 장기적이고 비 실시간 분석이라면 MySQL의 정기적 인 쿼리 로깅을 사용하십시오. 쿼리 로그 (일반 쿼리와 슬로우 쿼리 모두)에 대한 분석을 수행 할 수있는 도구가 많이 있습니다. 런타임에 대한 정보, 반환 된 평균 행 등에 대한 정보를 제공합니다. 원하는 정보로 보입니다.

5

모든 쿼리를 포함하여 클라이언트 활동을 보여줍니다 일반 로그, 사용 : 각 쿼리 걸리는 시간에 대한 아주 자세한 통계를해야하는 경우

http://dev.mysql.com/doc/refman/5.1/en/query-log.html

가하는 LONG_QUERY_TIME와 느린 로그를 사용을 0 (또는 다른 충분히 짧은 시간)의 :

http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

그런 다음 필요에 따라 로그를 분석하는 http://www.maatkit.org/를 사용합니다.

0

나는 macabail에 동의하지만 cron 작업과 간단한 스크립트를 결합하여 원하는 통계를 추출하고 생성 할 수 있다고 덧붙입니다.