MYSQL SQL 통계
MYSQL SQL 통계는 향후 SQL 통계(DB)로 명칭이 변경될 예정입니다.
MySQL의 performance_schema.events_statements_summary_by_digest 뷰에서 제공하는 DB 자체의 SQL 통계입니다. SQL별 실행 횟수, 수행 시간, 처리 Row 수 등의 델타값을 DB에 직접 조회하지 않고 화면에서 확인할 수 있습니다.
-
에이전트가 1시간 간격으로 델타값을 계산하여 수집합니다.
-
sum_timer_wait기준으로 에이전트 옵션statements_row_limit까지 수집합니다. (기본값 5,000건) -
DBX 에이전트 1.6.10 버전 이상이 필요합니다.
설정 완료 후 약 1시간 후 데이터 수집이 시작됩니다.
사전 설정
이 화면에 데이터를 표시하려면 DB 설정과 Agent 설정 두 가지가 모두 필요합니다.
DB 설정
-
Performance Schema 활성화 (
my.cnf)변경 후 MySQL 재시작이 필요합니다.
[mysqld]
performance_schema = on -
모니터링 계정 권한 부여
에이전트가
performance_schema를 조회할 수 있도록 DB에서 권한을 부여합니다.GRANT SELECT ON performance_schema.* TO 'whatap'@'%';
Agent 설정
whatap.conf 파일에 다음 설정을 추가합니다.
statements=true
| 설정 항목 | 타입 | 기본값 | 설명 |
|---|---|---|---|
statements | boolean | false | SQL 통계 수집 활성화 |
상세 옵션
| 설정 항목 | 타입 | 기본값 | 설명 |
|---|---|---|---|
statements_interval | int | 1 | SQL 통계 수집 간격(시간 단위) |
statements_min_row | int | 10000 | SQL 통계 데이터를 수집하는 기준입니다. 아래 수집 기준을 참고하세요. |
statements_row_limit | int | 5000 | 수집 최대 건수(sum_timer_wait 기준 상위) |
수집 기준 (statements_min_row)
performance_schema.events_statements_summary_by_digest의 아래 세 가지 지표 중 하나라도 statements_min_row를 초과(OR)할 경우 해당 SQL 데이터를 수집합니다.
| 지표 | 설명 |
|---|---|
sum_rows_affected | 영향을 받은 행 수 |
sum_rows_sent | 전송된 행 수 |
sum_rows_examined | 검사한 행 수 |
고객사의 DB 워크로드에 따라 SQL 수집량이 너무 많거나 적을 경우, statements_min_row와 statements_row_limit 값을 조정하여 수집량을 제어할 수 있습니다.