perfmance schema는 storage engine 형태로 구현되어 있으나, 데이터를 저장하는 형태는 아님.
1. performance schema activate
show variables like 'performance_schema';
해당 기능이 on 되어 있지 않으면 my.cnf에 아래와 같이 설정
[mysqld]
performance_schema = ON
2. 성능 데이터 수집을 위해 아래와 같이 update 수행 ( 운영환경에 부하를 줄수 있음 )
enable 기능 확인
select * from performance_schema.setup_consumers; (모니터링 테이블들 및 사용설정 확인)
select * from performance_schema.setup_instruments; (수집 지표별 사용설정 확인)
성능 수집 항목 모두 enable
update performance_schema.setup_consumers set enabled = 'YES';
update performance_schema.setup_instruments set enabled = 'YES', timed = 'YES';
3. 사용
위에 적용된 기능을 사용하여 full table scan 찾기
SELECT DIGEST_TEXT AS query,
IF(SUM_NO_GOOD_INDEX_USED > 0 OR SUM_NO_INDEX_USED > 0, '*', '') AS full_scan,
COUNT_STAR AS exec_count,
SUM_ERRORS AS err_count,
SUM_WARNINGS AS warn_count,
SEC_TO_TIME(SUM_TIMER_WAIT/1000000000000) AS exec_time_total,
SEC_TO_TIME(MAX_TIMER_WAIT/1000000000000) AS exec_time_max,
SEC_TO_TIME(AVG_TIMER_WAIT/1000000000000) AS exec_time_avg_ms, SUM_ROWS_SENT AS rows_sent,
ROUND(SUM_ROWS_SENT / COUNT_STAR) AS rows_sent_avg, SUM_ROWS_EXAMINED AS rows_scanned,
DIGEST AS digest
FROM performance_schema.events_statements_summary_by_digest ORDER BY SUM_TIMER_WAIT DESC
'RDB > MySQL' 카테고리의 다른 글
mariadb binlog format (0) | 2020.02.10 |
---|---|
mariadb innodb buffer pool dump/load (0) | 2020.02.10 |
mariadb 패스워드 인증 (0) | 2020.01.14 |
mysql data dump 백업 (0) | 2019.10.25 |
mysql metalock 관리 (0) | 2019.10.14 |